AngularJS如何实现双向数据绑定?模型更新的视图是可以理解的,即它可以通过JS监听器实现,但我想了解模型以查看更新?由于核心角度模型是js变量,所以Angular如何听取js变量的变化?
我知道每个型号都有一个手表,可以将新值与旧值进行比较,但触发此检查的是什么(js实现)?
是否使用Javascripts观察者或时间间隔进行检查?
答案 0 :(得分:3)
Angular定义了一个所谓的摘要周期的概念。这个循环可以 被视为一个循环,在此过程中Angular会检查是否存在循环 更改所有$ scope监视的所有变量。所以,如果你 你的控制器中定义了$ scope.myVar,这个变量是 标记为被观看,然后你明确告诉Angular 在循环的每次迭代中监视myVar上的更改。
基本上AngularJS将事件处理程序绑定到与Angular($scope
,directive
,...)交互的任何元素,每次事件触发时,调用$apply
内部调用{ {1}}将触发重新评估所有$digest
。
AngularJS巧妙地假设模型更改仅发生在用户交互/事件上:
或触发某些$watches
当这些假设中的一个'触发后,摘要周期开始:
引用Pawel Kozlowski,Mastering Web Application Development with AngularJS:
AngularJS不会定期使用任何类型的轮询机制 检查模型更改
更详细的见解
看看https://www.youtube.com/watch?v=SYuc1oSjhgY深入了解摘要周期。