Угловой жизненный цикл 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.