【问题标题】:Detect change in a variable?检测变量的变化?
【发布时间】:2017-02-25 22:12:29
【问题描述】:

是否可以检测变量的变化?

我有以下几点:

@Input('name') name: string;

每当此变量“名称”发生更改时,我想调用一个函数。

有可能吗?

【问题讨论】:

    标签: angular angular2-directives


    【解决方案1】:

    你可以这样做:

    private _name = '';
    
    @Input('name')
    set name(name: string) {
       this._name = name;
       doSomeStuff();
    }
    
    get name(): string { return this._name; }
    

    【讨论】:

      【解决方案2】:

      我正在使用名为 OnChanges 的默认 Angular 功能解决这个问题,与 OnInit 非常相似。

      https://stackoverflow.com/a/61720541/13514355

      【讨论】:

      • 这其实是正确的答案。现在知道为什么它被否决了!直接链接到 Angular 文档:angular.io/api/core/OnChanges
      • 对于我上面的评论,我实现了这个机制,并意识到如果在视图之外进行更改,OnChanges 不会被触发。一个很好的解释在这里:medium.com/@isaacplmann/… 从这个角度来看,我会说上面的博客或@Mathias 中的 get / set 解决方案更好,但我不喜欢使用私有变量。
      猜你喜欢
      • 1970-01-01
      • 2017-06-12
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多