Angular - вызов канала в событии клика - PullRequest
0 голосов
/ 30 января 2020

У меня проблемы с поиском наилучшего способа использования канала в событии (щелчка). Я получаю сообщение об ошибке «не может иметь канал в выражении действия». Я хотел бы иметь возможность вызвать канал, когда пользователь нажимает кнопку. Цель этой программы - когда пользователь нажимает кнопку «CM», значения в столбце длины преобразуются в сантиметры. Будем весьма благодарны за любую помощь в устранении этой ошибки или в поиске лучшего решения.

Таблица

                       If user selects centimeters

in cm                         in cm
--------------------          ---------------        
User |Item  | Length        User | Item  | Length 
--------------- ---->      ---------------
User1|Item1 | 12 cm         User1| Item1 | 12 cm
User2|Item2 | 2 in          User2| Item2 | 5.08 cm

Труба

@Pipe({name:convertToCmPipe})
export class ConvertToCmPipe implements PipeTransform {
 constructor(public log:LoggingService){}
 transform(value:number,newVal: string): any {
   return newVal === undefined ? value : value * 2.54;

   }
}

Машинопись

onBtnSelect(x: number)
{
  return this.convertToCmPipe.transform(x,x);
}

HTML

<button (click)="onBtnSelect(lengthVal | convertToCmPipe: 'length')"
title="cm"> CM </button>

1 Ответ

0 голосов
/ 30 января 2020

Попробуйте это:

В html:

<button (click)="onBtnSelect()"> change </button>
{{lengthVal | (isClicked? (convertToCmPipe: 'length') : '')}}

В тс:

isClicked = false;
onBtnSelect() {
  this.isClicked = !this.isClicked;
}

Не уверены, что сработает, оставьте отзыв.

...