Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular2-避免属性绑定时的副作用_Angular_Property Binding - Fatal编程技术网

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

Angular2-避免属性绑定时的副作用,angular,property-binding,Angular,Property Binding,我们不允许在属性绑定中增加或设置值。在官方的Angular2文件中,他们声称: 表达式可以调用getFoo()之类的函数。只有你知道getFoo()做什么。如果getFoo()更改了某些内容,而您恰好绑定了这些内容,那么您可能会有不愉快的经历。角度可能显示也可能不显示更改的值。Angular可能检测到更改并抛出警告错误。通常,坚持使用数据属性和返回值的方法,不再执行其他操作 然而,我做了一个例子,我实际上覆盖了这个值并增加了它,然后将它设置为DOM属性,这一切都很好。这是我的密码: export

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

表达式可以调用getFoo()之类的函数。只有你知道getFoo()做什么。如果getFoo()更改了某些内容,而您恰好绑定了这些内容,那么您可能会有不愉快的经历。角度可能显示也可能不显示更改的值。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)" />
{{myIndex}
从理论上讲,这应该是一种不好的做法并加以避免,但在现实生活中,这同样有效。所以我的问题是,什么是正确的案例来表示这些事情不应该做