如何延迟控制器的加载?

时间:2015-11-19 20:48:09

标签: angularjs

如何在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页面加载?

1 个答案:

答案 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();
}

希望它有所帮助!