AngularJS $ scope在更新后不会呈现

dou*_*oll 11 angularjs

我有一个监听$ scope.$ on的控制器,它会在触发时显示一个弹出窗口.它可以100%的时间从其他几个控制器$ rootScope.$ broadcast方法开始工作.但其中一个将无法工作.

控制器获取事件,并设置所需的$ scope变量,但页面不会更新,即使我触发$ scope.$ eval().然后,如果我转到另一条路线,$ scope将最终渲染,并且模式将弹出该路线的顶部.我不知道我是否在angularjs中发现了一个bug,或者我遗漏了一些基本的东西.

对不起,我不能包含代码,这是一个工作项目.

Ren*_*des 33

您可能正在更改角度$摘要之外的$ scope.尝试更换code making changes$scope.$apply(function(){ code making changes }).有了这个,脏检查应该运行并更新所有.


eme*_*ino 13

我建议使用:

$scope.$evalAsync(function() { // scope changes here });

通过这种方式,您不会遇到诸如在正在进行摘要时尝试调用apply的问题.

  • 这是解决此问题的正确方法。 (2认同)