如何在AngularJS中加载HTML页面之前延迟控制器的加载? 我正在使用棱角旋转器。我的代码如下
<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 :(得分:0)
您可以将控制器functionallity包含在控制器内部声明的函数中,作为$ scope.func = ...并在视图中包含一个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,其中您有ng-view,例如id =“ngview”,并按以下方式调用您的函数:
window.onload = function () {
angular.element(document.getElementById('ngview')).scope().myfunction();
}
希望它有所帮助!