AngularJS $ scope在更新后不会呈现

时间:2012-08-20 17:44:57

标签: angularjs

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

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

抱歉,我不能包含代码,这是一个工作项目。

2 个答案:

答案 0 :(得分:33)

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

答案 1 :(得分:10)

我建议使用:

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

这样你就不会遇到问题,例如在已经有摘要的情况下尝试调用apply。