2015-11-19 32 views
1

如何延遲加載我的控制器,直到HTML頁面已加載到AngularJS中? 我正在使用角度微調器。我的代碼如下我該如何延遲加載我的控制器?

<span spinner-key="spinner-mySpinner"> 
<div>...</div> 
</span> 

我打電話加載數據的承諾之前,調用微調。

... 
mySpinner.spin('spinner-mySpinner'); 
loadDataPromise = file.getFileDetails(vm.id, vm.path); 
... 
loadDataPromise.finally(function() { 
      mySpinner.stop('spinner-mySpinner'); 
     } 
... 

我無法看到微調器。 我認爲我的控制器在加載HTML頁面之前就已經初始化了。 有沒有一種方法可以讓我的控制器延遲到HTML頁面加載?

+0

你可以提供一個plunker? – lux

+0

你的飛輪在哪裏住?它是在控制器被綁定到視圖或者是在主視圖,例如index.html的? – mindparse

回答

0

可以包括宣佈你的控制器內爲$ scope.func = ...一個函數內部控制器functionallity,包括在你看來JS腳本上window.load調用你的控制器的該功能。

angular.module('MyModule', []) 
    .controller('MyController', function ($scope) { 
    $scope.myfunction = function() { 
     //do your stuff 
    }; 
}); 

window.onload = function() { 
    angular.element(document.getElementById('YourElementId')).scope().myfunction(); 
} 

如果從路線提供商分配控制器,你應該設置一個id你的部門,你必須例如ID =「ngview」並調用函數如下方式ngview:

window.onload = function() { 
     angular.element(document.getElementById('ngview')).scope().myfunction(); 
} 

希望它有幫助!