0
为什么下面的代码不起作用?我想要$ scope.init()函数在启动时运行。在控制器初始化上运行代码的正确方法是什么?AngularJS:控制器初始化时运行代码
app.controller('LoginCtrl', function($scope) {
$scope.init();
$scope.init = function() {
...
};
});
为什么下面的代码不起作用?我想要$ scope.init()函数在启动时运行。在控制器初始化上运行代码的正确方法是什么?AngularJS:控制器初始化时运行代码
app.controller('LoginCtrl', function($scope) {
$scope.init();
$scope.init = function() {
...
};
});
您尝试在定义之前调用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';
});
你也可以定义初始化控制器为你做:
app.controller('LoginCtrl', function($scope) {
$scope.init = function() {
...
};
});
然后从调用它标记:
<body ng-init='init()'>
...
</body>
尝试在函数后面放置'init()'? – 2014-10-16 14:22:00
'$ scope.init()'在你调用它的地方不存在。在设置它之后调用它,即第一个'$ scope.init = function ...'和* then *'$ scope.init()'。你甚至可能不需要将'init()'放在范围内,以内联运行它就足够了。 – 2014-10-16 14:23:10
已经试过了,没有什么区别 – user2611144 2014-10-16 14:23:29