【问题标题】:What's the point of having 'one-directional binding' (<) in Angular 1.5?在 Angular 1.5 中使用“单向绑定”(<) 有什么意义?
【发布时间】:2016-05-24 12:57:10
【问题描述】:

随着在 Angular 1.5 中引入组件概念,还引入了单向数据绑定 (

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

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

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

【问题讨论】:

  • 我也有同样的疑问。你有答案吗??

标签: javascript angularjs angular-directive


【解决方案1】:

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

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

scope {
  someValue: "@"
}

&lt; 绑定的情况下,您设置属性值而不进行插值。而当value 的值不是undefined 时,它将被隔离范围限制:

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

scope {
  someValue: "<"
}

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

【讨论】:

  • 我理解 @ 和
  • true,&lt;= 之间的区别仅在于原始值绑定。
  • 啊。无用且令人困惑,然后:(期待真正的单向绑定。但这可能是人性 - 双向绑定真是太棒了,现在我抱怨要单向绑定。:)
猜你喜欢
  • 2017-03-29
  • 2017-05-10
  • 2016-11-07
  • 2017-06-08
  • 2017-05-17
  • 2017-08-23
  • 2017-06-05
  • 2016-07-21
  • 1970-01-01
相关资源
最近更新 更多