2016-03-06 80 views
0

我在獲取$ 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(); 
} 

關閉該噴射器的,我得到了我廠上面提到的,和火一樣的列表:更新的事件。關於如何進行的任何想法?

請讓我知道我可以回答什麼問題來幫助解決問題。

非常感謝您提供的幫助!

+0

我懷疑你雖然是客場導航,事件不被破壞和您的事件被註冊第二次,這可能會攔截你的呼叫,阻止正確的範圍觸發摘要循環。一個plunkr會有幫助。 –

+0

嗨@ david-l感謝您的回覆。我嘗試使用$ scope($'''')取消綁定事件。以下是一些示例代碼:pastebin.com/mvDRZNzE –

回答

0

嘗試使用NG綁定等爲 -

ng-bind='document.Title' 

希望,這將幫助你..

+0

這在DOM中產生了不需要的效果。我開始在所有地方得到[物體]物體。 –