Angular Lifecyclehook ngOnChanges

时间:2018-03-21 10:07:44

标签: angular lifecycle-hook

我希望每次在角度视图中更改后更新变量。

如果不使用{{1}}装饰器,如何在角度中实现?

1 个答案:

答案 0 :(得分:0)

如果您的变量在组件中被称为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>,用户正在键入该标题,因此值正在变化。如果您正在谈论的变量正在被更改,那么&#39;你的组件,然后它需要有一个@Input装饰器,你需要使用ngOnChanges生命周期钩子。