发表于: 2016-08-11 22:52:16
0 2531
今天完成的事情:看基础。
明天计划的事情:查缺补漏。
遇到的问题:。。
如果我们使用了angularJS中的$scope.$apply()或者$scope.$digest(),我们很可能会遇到类似下面的错误
情况1:controller中如果有异步操作,比如ajax回调,timeout延时等。可以这么理解:由于异步(延迟)的存在,当开始执行回调函数的时候,angularJS自身controller中的脏值检测已经结束,无法检测到回调函数导致数据的变化。
这段代码如果没有调用$scope.$apply()的话,数据是不会刷新到界面上的。
情况2:在JQuery代码中修改$scope中的数据。这种情况是在angular框架之外操作$scope中的数据,angular不能检测到数据变化是正常的。
解决“$apply already in progress”最好的方式,就是不要使用$scope.$apply()或者$scope.$digest()。
评论