我想訪問我的角度控制器的範圍以外的控制器。我正在使用外部js庫執行某些操作,並在完成時執行某些回調。在其中一個回調angular.element(document.findElementById('elementId').scope()
返回undefined
。 但是在第一個 angular.element(document.findElementById('elementId').scope()
返回有效範圍之後執行的第二個回調中。angular.element(..)。scope()首先返回undefined
下面是一些示例代碼
<body id="authcontroller" ng-controller="AuthenticationController as auth">
<script>
window.externalLibObj = {
onCallback1: function(){
// Undefined value for scope
var scope = angular.element(document.getElementById('authcontroller')).scope();
},
onCallback2(): function(){
// Valid value for scope
var scope = angular.element(document.getElementById('authcontroller')).scope();
}
};
</script>
</body>
其中這些回調的執行順序是onCallback1
然後onCallback2
。 var scope
未定義在onCallback1
但爲什麼在onCallback1
未定義scope
在onCallback2
的值?
感謝您的幫助
你也可以說是調用這些回調的代碼? –
@PeterLaBanca調用這些回調的代碼在js lib加載後自動執行,我從不明確調用調用這些回調的代碼 –
這兩個回調是否立即執行?這聽起來像是一個時間問題,在第二次回調被調用之前,範圍還沒有準備好。 –