Угловой жизненный цикл ngOnChanges

Я хочу обновлять переменную каждый раз, когда она меняется в угловом изображении.

Как это может быть достигнуто в угловом без использования @input декоратор?

1 ответ

Если ваша переменная называется title в вашем компоненте, то вы можете сделать это:

  this.title.valueChanges
      .debounceTime(500)
      .distinctUntilChanged()
      .subscribe (newValue => {
        // do something based on the newvalue 
    });

Однако теперь у вас есть подписчик, который будет срабатывать при каждом изменении названия. Так что вы должны действительно уничтожить его в какой-то момент, иначе вы получите утечку памяти / переполнение стека, например:

this.title.valueChanges
      .debounceTime(500)
      .distinctUntilChanged()
      .takeUntil(this.destroyValueChanges$)
      .subscribe (newValue => {
        // do something based on the newvalue 
    });

Delcare destroyValueChanges$ как Subject свойство вашего компонента и в ngOnDestroy вызов destroyValueChanges$.next();

НОТА

Поскольку вы не опубликовали никакого кода, я должен угадать, что вы спрашиваете. Я предполагаю, что название <input> в вашем шаблоне, в котором пользователь печатает, и, следовательно, именно так меняется значение. Если переменная, о которой вы говорите, изменяется "за пределами" вашего компонента, то она должна иметь декоратор @Input и вам нужно использовать ловушку жизненного цикла ngOnChanges.

Другие вопросы по тегам