angularJS数据不实时更新的问题,关于$scope.$apply()方法

东明兄 2018-07-30
0条评论 2,311 次浏览
东明兄 2018-07-300条评论 2,311 次浏览

项目中遇到 给一个数组赋值后,控制台可以打印出来,但是在界面始终无法用ng-repeat渲染出来,前端组长过来给我加了个$scope.$apply()方法,瞬间解决问题

  $scope.$apply(function(){
                        $scope.luminaire.chooseMainPageLuminaire = $scope.luminaire.chooseLuminaire;// 将选择的数据 赋值给dimmingGroup主界面Luminaire列表数据
                    });

网上摘抄一段:

那我们到底什么时候需要去调用apply()方法呢?情况非常少,实际上几乎我们所有的代码都包在scope.apply()里面,像ng−click,controller的初始化,http的回调函数等。在这些情况下,我们不需要自己调用,实际上我们也不能自己调用,否则在apply()方法里面再调用apply()方法会抛出错误。如果我们需要在一个新的执行序列中运行代码时才真正需要用到它,而且当且仅当这个新的执行序列不是被angular JS的库的方法创建的,这个时候我们需要将代码用scope.apply()包起来。



参见:https://www.cnblogs.com/penghongwei/p/3398361.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注