@apply与脏检查

什么时候手动调用$apply()方法?

AngularJS只负责ng-发生于AngularJS相对上下文环境中的变更会做出自动地响应(即在$apply()方法中发生的对于models的更改)AngularJSbuilt-in指令就是这样做的,所以任何的model变更都会被反映到view中。但是,如果你在AngularJS上下文之外的任何地方修改了model,那么你就需要通过手动调用$apply()来通知AngularJS。这就像告诉AngularJS,你修改了一些models,希望AngularJS帮你触发watchers来做出正确的响应。



当我们手动调用$apply的时候,会自动触发脏检查,检查对象的属性是否变化,如果变化了,那么相对应的view和model也会做出相应的改变。

你可能感兴趣的:(@apply与脏检查)