在Angular 1.5中进行"单向绑定"(<)有什么意义?

Yur*_*nko 5 javascript angularjs angular-directive

随着Angular 1.5中组件概念的引入,还引入了单向数据绑定(<).但是,手册说:

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

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

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

Env*_*off 0

如果@您应该使用插值({{value}}表达式)将一些值传递给指令:

<my-directive some-value="{{value}}"></my-directive>
Run Code Online (Sandbox Code Playgroud)

scope {
  someValue: "@"
}
Run Code Online (Sandbox Code Playgroud)

在绑定的情况下<,您无需插值即可设置属性值。当 的值value不是时undefined,它将受到隔离范围的限制:

<my-directive some-value="{{value}}"></my-directive>
Run Code Online (Sandbox Code Playgroud)

scope {
  someValue: "<"
}
Run Code Online (Sandbox Code Playgroud)

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

  • 确实,“&lt;”和“=”之间的区别仅在于原始值绑定。 (3认同)