如何在文档就绪的AngularJS控制器中运行函数?

2022-08-30 00:26:54

我在我的角度控制器中有一个函数,我希望这个函数在文档准备就绪上运行,但我注意到angular在创建dom时运行它。

 function myController($scope)
 {
     $scope.init = function()
     {
        // I'd like to run this on document ready
     }

     $scope.init(); // doesn't work, loads my init before the page has completely loaded
 }

有人知道我该怎么做吗?


答案 1

我们可以使用该方法在文档准备就绪时附加回调。我们可以简单地将回调附加到控制器中,如下所示:angular.element(document).ready()

angular.module('MyApp', [])

.controller('MyCtrl', [function() {
    angular.element(document).ready(function () {
        document.getElementById('msg').innerHTML = 'Hello';
    });
}]);

http://jsfiddle.net/jgentes/stwyvq38/1/


答案 2

请参阅此帖子 如何在页面加载时执行角度控制器功能?
为了快速查找:

// register controller in html
<div data-ng-controller="myCtrl" data-ng-init="init()"></div>

// in controller
$scope.init = function () {
    // check if there is query in url
    // and fire search in case its value is not empty
};

这样,您就不必等到文档准备就绪。