具有单向绑定的重点是什么? Angular 1.5中的(<)?

时间:2016-02-13 10:01:06

标签: javascript angularjs angular-directive

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

  

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

scope {
  someValue: "@"
}

如果<绑定,则设置属性值而不插值。当value的值不是undefined时,它将与孤立的范围有界:

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

scope {
  someValue: "<"
}

当然,someValue必须是基元,而不是数组或对象