随着Angular 1.5中组件概念的引入,还引入了单向数据绑定(<)。但是,手册说:
但请注意,父作用域和组件作用域都引用相同的对象,因此,如果要更改组件中的对象属性或数组元素,则父级仍将反映该更改。因此,一般规则应该是永远不要更改组件范围中的对象或数组属性。
事实上,在指令/组件范围内更改对象的属性会反映在父范围内 - 听起来不像是单向绑定,它只会增加整个事物的混乱 - 我们需要现在有半单向绑定,你最好不要用于对象或数组,而对于字符串,我们有@。
使用单向数据绑定有什么有用的实际场景?或者完全避免它以保护自己免受意外变化是一个好主意 - 因为单向概念尖叫它是单向的,而事实并非如此?
答案 0 :(得分:0)
如果是@
,你应该使用插值({{value}}
表达式)将一些值传递给指令:
<my-directive some-value="{{value}}"></my-directive>
和
scope {
someValue: "@"
}
如果<
绑定,则设置属性值而不插值。当value
的值不是undefined
时,它将与孤立的范围有界:
<my-directive some-value="{{value}}"></my-directive>
和
scope {
someValue: "<"
}
当然,someValue必须是基元,而不是数组或对象