在 Angular 1.5 中使用“单向绑定”(<) 有啥意义?
Posted
技术标签:
【中文标题】在 Angular 1.5 中使用“单向绑定”(<) 有啥意义?【英文标题】: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 中引入组件概念,还引入了单向数据绑定 (
但是请注意,父范围和组件范围都引用同一个对象,因此如果您要更改组件中的对象属性或数组元素,父范围仍会反映该更改。因此,一般规则应该是永远不要更改组件范围内的对象或数组属性。
确实,在指令/组件范围内更改对象的属性会反映在父范围内 - 听起来不像是单向绑定,它只会给整个事情增加混乱 - 我们现在有半单向绑定,最好不要用于对象或数组,而对于字符串,我们有 @.
什么是使用单向数据绑定的有用真实案例?或者为了保护自己免受意外变化的影响而完全避免它是一个好主意 - 因为单向概念尖叫着它是单向的,而事实并非如此?
【问题讨论】:
我也有同样的疑问。你有答案吗?? 【参考方案1】:如果是@
,您应该使用插值(value
表达式)将一些值传递给指令:
<my-directive some-value="value"></my-directive>
和
scope
someValue: "@"
在<
绑定的情况下,您设置属性值而不进行插值。而当value
的值不是undefined
时,它将被隔离范围限制:
<my-directive some-value="value"></my-directive>
和
scope
someValue: "<"
当然,someValue 必须是基元,而不是数组或对象
【讨论】:
我理解 @ 和 true,<
和 =
之间的区别仅在于原始值绑定。
啊。无用且令人困惑,然后:(期待真正的单向绑定。但这可能是人性 - 双向绑定真是太棒了,现在我抱怨要单向绑定。:)以上是关于在 Angular 1.5 中使用“单向绑定”(<) 有啥意义?的主要内容,如果未能解决你的问题,请参考以下文章
Angular Component:如何为父级中定义的输出绑定函数指定值?
再谈angularJS数据绑定机制及背后原理—angularJS常见问题总结