角度2双向数据绑定与单向

时间:2016-08-23 08:02:12

标签: angularjs data-binding angular

我对Angular 2双向数据绑定和单向数据绑定之间的区别有疑问。据我所知,单向数据绑定用于从父级传输到子级的数据。但是,如果绑定的源是对象的引用,则子级所做的修改将反映在父级上(通过引用)。那么这与双向数据绑定有什么不同呢?或者我是否滥用单向绑定,并且当孩子修改数据时应该使用双向?

由于

2 个答案:

答案 0 :(得分:3)

双向数据绑定是在视图和控制器之间...

简单的话

双向

  • 视图中所做的更改将反映在Controller

  • 在Controller中所做的更改将反映在View

单程

  • 设置值后,它不会影响视图或控制器以进行进一步更改

答案 1 :(得分:1)

绑定到集合或对象时,您开始遇到单向绑定问题。正如您所说,绑定到引用的一种方式不会引导您修改引用的对象,因为绑定只是浅的,并且反映了引用的值。

解决方法是尝试使用不可变类型。由于对不可变类型的更改会产生新的引用,因此每次对象更改时,这将使单向绑定更新。

有很多方法可以实现这一点,从构建自己的不可变类型,使用immutable-js,或尝试遵循通量模式(或使用redux之类的东西)