-1

我想在每次更改角度视图后更新一个变量。

如何在不使用@input装饰器的情况下以角度实现?

4

1 回答 1

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 
    });

DelcaredestroyValueChanges$作为Subject组件的属性并在ngOnDestroy调用中destroyValueChanges$.next();

笔记

由于您没有发布任何代码,我不得不猜测您在问什么。我假设标题是<input>您的模板上的一个,用户正在其中输入,因此这就是值的变化方式。如果您正在谈论的变量在您的组件“外部”被更改,那么它需要有一个 @Input 装饰器,并且您需要使用 ngOnChanges 生命周期挂钩。

于 2018-03-21T10:15:46.390 回答