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 關注
- 713 瀏覽
添加回答
舉報