在 Angular 1.5 中使用“单向绑定”(<)有什么意义

What's the point of having 'one-directional binding' (<) in Angular 1.5?

本文关键字:什么 单向绑定 绑定 Angular      更新时间:2023-09-26

随着Angular 1.5中组件概念的引入,单向数据绑定(<(也被引入。但是,手册说:

但请注意,父级和组件范围都引用同一对象,因此,如果要更改组件中的对象属性或数组元素,父级仍将反映该更改。因此,一般规则应该是永远不要更改组件作用域中的对象或数组属性。

事实上,在指令/组件作用域中更改对象的属性会反映在父作用域中 - 听起来不像单向绑定,它只会给整个事情增加混乱 - 我们现在有半单向绑定,你最好不要将其用于对象或数组,而对于字符串我们有@。

使用单向数据绑定的有用实际案例方案是什么?或者完全避免它是一个好主意,以保护自己免受意外变化的影响 - 因为单向概念尖叫它是单向的,而事实并非如此?

@的情况下,你应该使用插值({{value}}表达式(将一些值传递给指令:

<my-directive some-value="{{value}}"></my-directive>

scope {
  someValue: "@"
}

如果是<绑定,则可以在不进行插值的情况下设置属性值。当 value 的值不undefined时,它将以隔离作用域为界:

<my-directive some-value="{{value}}"></my-directive>

scope {
  someValue: "<"
}

当然,someValue 必须是原语,而不是数组或对象