AngularJS:初始化Controller时运行代码

时间:2014-10-16 14:19:51

标签: javascript angularjs

为什么以下代码不起作用?我希望$ scope.init()函数在启动时运行。在控制器初始化上运行代码的正确方法是什么?

app.controller('LoginCtrl', function($scope) {
    $scope.init();

    $scope.init = function() {
        ...
    };

});

2 个答案:

答案 0 :(得分:2)

您尝试在定义之前调用init()。如果你切换它,它就像你在这个小提琴中看到的那样工作:

http://jsfiddle.net/gjcotq1y/2/

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', function($scope){
    $scope.init = function() {
        alert('Message');
    };
    $scope.init();
    $scope.message = 'Test message';
});

答案 1 :(得分:0)

您也可以像控制器一样在控制器中定义init:

app.controller('LoginCtrl', function($scope) {
    $scope.init = function() {
        ...
    };
});

然后从标记中调用它:

<body ng-init='init()'>
...
</body>