我在獲取$ scope的過程中遇到了一些困難$ apply call正常工作。AngularJS在第二次渲染時顯示大括號
有點背景資料。我正在將我的應用程序的某些部分轉換爲使用angular的過程。爲了做到這一點,我實際上是將數據注入到Angular工廠中,並觸發一個事件,以便將更改應用到已引導的角度範圍。
我模塊的第一次加載正常。它將數據按我期望的輸出到我使用ng-each標記的模板中。我聽應用範圍,像這樣的事件:
$scope.$on('list:updated', function(event, data){
$scope.$apply(function(e){
$scope.list = data;
});
});
列表變量是我的標記內使用,就像我說的,這個偉大工程的第一次圍繞。當從有角度的部分導航,然後重新訪問時,我第二次得到一個未渲染的模板。所以我看到像
{{ document.Title }}
在我的文件標題的標記intead像我在第一次加載。據我所知,你只能引導一個應用一次,所以我這樣做,以說明:
if (Angular.element(document).scope() === undefined){
bootstrap = Angular.bootstrap(document, ['listModule']);
}
else{
bootstrap = Angular.element(document).injector();
}
關閉該噴射器的,我得到了我廠上面提到的,和火一樣的列表:更新的事件。關於如何進行的任何想法?
請讓我知道我可以回答什麼問題來幫助解決問題。
非常感謝您提供的幫助!
我懷疑你雖然是客場導航,事件不被破壞和您的事件被註冊第二次,這可能會攔截你的呼叫,阻止正確的範圍觸發摘要循環。一個plunkr會有幫助。 –
嗨@ david-l感謝您的回覆。我嘗試使用$ scope($'''')取消綁定事件。以下是一些示例代碼:pastebin.com/mvDRZNzE –