【发布时间】:2016-12-29 22:48:53
【问题描述】:
我对 Angular 2 双向和单向数据绑定之间的区别有疑问。据我了解,单向数据绑定用于从父级流向子级的数据。但是,如果绑定的源是对对象的引用,则子项所做的修改会反映在父项上(通过引用)。那么这与双向数据绑定有什么不同呢?还是我误用了单向绑定,在孩子修改数据的时候应该使用双向绑定?
谢谢
【问题讨论】:
标签: angularjs data-binding angular
我对 Angular 2 双向和单向数据绑定之间的区别有疑问。据我了解,单向数据绑定用于从父级流向子级的数据。但是,如果绑定的源是对对象的引用,则子项所做的修改会反映在父项上(通过引用)。那么这与双向数据绑定有什么不同呢?还是我误用了单向绑定,在孩子修改数据的时候应该使用双向绑定?
谢谢
【问题讨论】:
标签: angularjs data-binding angular
两种方式数据绑定是在视图和控制器之间......
简单来说
双向
在视图中所做的更改将反映在控制器中
在控制器中所做的更改将反映在视图中
一种方式
【讨论】:
当您绑定到集合或对象时,您开始遇到单向绑定问题。正如您所说,绑定到引用的一种方式不会让您修改被引用的对象,因为绑定只是浅层的,并且反映了引用的值。
解决方案是尝试使用不可变类型。由于对不可变类型的更改会产生新的引用,这将使每次对象更改时绑定都会更新一种方式。
有很多方法可以实现这一点,从构建您自己的不可变类型、使用 immutable-js 或尝试遵循通量模式(或使用类似 redux 的东西)
【讨论】: