2015-11-19 77 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(); 
} 

希望它有帮助!