我对Angular2 / 4/5/6的了解是,由于 [(ngModel)] ,可以实现2路数据绑定-就像通过Angular1中发生的那样$ scope。
现在,我浏览了该网站,该网站清楚地表明Angular4中无法进行2向数据绑定。我很困惑。有人真的可以澄清一下吗?在Angular 2/4/5/6中,是否可以进行2向数据绑定?
链接:https://dzone.com/articles/understanding-output-and-eventemitter-in-angular
答案 0 :(得分:4)
在Angular 2/4/5/6中是否可以进行2-Way数据绑定?
不是,不是[(ngModel)]
不是双向数据绑定。它只是用于同时进行事件绑定和属性绑定的语法糖。
进一步了解
1。 Do you really know what unidirectional data flow means in Angular
2。 Change Detection Reinvented Victor Savkin
3。 TWO-WAY DATA BINDING IN ANGULAR
答案 1 :(得分:1)
Angular是一个JavaScript框架,并且javascript有一些限制,不允许进行真正的双向数据绑定。
实际上,由于本机javascript API允许侦听输入字段上的事件,因此使第一种方法(从模板到变量)成为可能,但是当变量更改时不会发出事件,因此另一种方法是javascript API不可行。
这里是detection change,它由Zone.js启用,Angular“侦听”您的代码并触发对这三种类型的事件的更改检测:
setTimeout
或setInterval
)触发了某些功能更改检测会使用每个绑定变量更新模板。
这就是双向数据绑定实际上存在的方式。
[(ngModel)]
是[ngModel]="variable" (ngModelChange)="variable = $event"
的语法糖:这是两种方式