为什么以下代码不起作用?我希望$ scope.init()函数在启动时运行。在控制器初始化上运行代码的正确方法是什么?
app.controller('LoginCtrl', function($scope) {
$scope.init();
$scope.init = function() {
...
};
});
答案 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>