我对Angular 2双向数据绑定和单向数据绑定之间的区别有疑问。据我所知,单向数据绑定用于从父级传输到子级的数据。但是,如果绑定的源是对象的引用,则子级所做的修改将反映在父级上(通过引用)。那么这与双向数据绑定有什么不同呢?或者我是否滥用单向绑定,并且当孩子修改数据时应该使用双向?
由于
答案 0 :(得分:3)
双向数据绑定是在视图和控制器之间...
简单的话
双向
视图中所做的更改将反映在Controller
在Controller中所做的更改将反映在View
单程
答案 1 :(得分:1)
绑定到集合或对象时,您开始遇到单向绑定问题。正如您所说,绑定到引用的一种方式不会引导您修改引用的对象,因为绑定只是浅的,并且反映了引用的值。
解决方法是尝试使用不可变类型。由于对不可变类型的更改会产生新的引用,因此每次对象更改时,这将使单向绑定更新。
有很多方法可以实现这一点,从构建自己的不可变类型,使用immutable-js,或尝试遵循通量模式(或使用redux之类的东西)