Angular2 - 在属性绑定时避免副作用

时间:2017-02-10 10:04:34

标签: angular property-binding

我们不允许在属性绑定中增加或设置值。在Angular2官方文档中,他们声称:

  

表达式可以调用getFoo()之类的东西。只有你知道getFoo()的作用。如果getFoo()改变某些东西并且你碰巧绑定了那个东西,你就会冒着不愉快的经历。 Angular可能会也可能不会显示更改的值。 Angular可以检测到更改并发出警告错误。一般来说,坚持使用数据属性和返回值的方法,不再需要了。

但是,我做了一个示例,我实际上覆盖了值并增加了它,然后将其设置为DOM属性,这一切都运行良好。这是我的代码:

export class AppComponent {
  myIndex: number = 0;

  overrideMe(newValue:string) {
    this.myIndex = parseInt(newValue);
    this.myIndex++;
    return this.myIndex;
  }
}

和HTML:

{{myIndex}}

<input type="text" [value]="overrideMe(10)" />

从理论上讲,这应该是一种不好的做法并且可以避免,但在现实生活中,这种做法同样有效。所以我的问题是,表示不应该做这些事情的正确案例是什么?

0 个答案:

没有答案