3 回答
TA贡献1851条经验 获得超4个赞
几天前,我遇到了类似的问题。在我的情况下,问题是我使用第三方库(准确地说是jQuery)更改了内容,在这种情况下,即使调用函数和设置变量有效,Angular也不总是知道有更改,因此从不进行摘要。
$ apply()用于从角度框架外部以角度执行表达式。(例如,来自浏览器DOM事件,setTimeout,XHR或第三方库)。
$scope.$apply()更改位置并致电replace()Angular 后,请立即尝试使用,以告知发生了变化。
TA贡献1757条经验 获得超7个赞
代替$ location.path(...)来更改或刷新我使用该服务的页面$window,在Angular中,此服务用作window对象的接口,并且该window对象包含location使您能够处理与位置相关的操作的属性或网址内容。
例如,window.location您可以分配一个新页面,如下所示:
$window.location.assign('/');
或刷新它,如下所示:
$window.location.reload();
它为我工作。它与您的预期有所不同,但可以实现给定的目标。
TA贡献1875条经验 获得超5个赞
我遇到了同样的问题,但是我对$ location的调用已经在摘要中了。调用$ apply()只会产生一个$ digest已经在处理中的错误。
这个技巧奏效了(并确保注入$location到您的控制器中):
$timeout(function(){
$location...
},1);
虽然不知道为什么这是必要的...
- 3 回答
- 0 关注
- 683 浏览
添加回答
举报