如何正确定义控制器?
我想使用这种形式的定义:
“在实际应用程序中,您应该为您的应用程序使用Angular模块的.controller方法,如下所示:”
myApp.controller('GreetingCtrl', ['$scope', function($scope) {
$scope.greeting = 'Hola!';
}]);
我的代码
var project = angular.module('project', [])
.config(function($routeProvider) {
$routeProvider.
when('/', {controller:'Ctrl1', templateUrl:'tabb_1.html'}).
when('/tab1', {controller:'Ctrl1', templateUrl:'tabb_1.html'}).
when('/tab2', {controller: 'Ctrl2', templateUrl:'tabb_2.html'}).
when('/tab3', {controller: 'Ctrl3', templateUrl:'tabb_3.html'}).
otherwise({redirectTo:'/'});
});
project.controller('Ctrl1', '$scope', function(scope){
});
project.controller('Ctrl2','$scope', function(scope){
});
project.controller('Ctrl3', '$scope', function(scope){
});
我得到“错误:参数'Ctrl1'不是函数,得到了字符串” 错误在哪里?
答案 0 :(得分:2)
示例控制器代码使用括号表示法来定义控制器。当您想要最小化生产代码时,这种表示法很有用,它明确地告诉angular它应该期望的依赖性。在您的代码中,您需要删除名称和函数之间的额外$ scope或添加括号。
没有括号:
project.controller('Ctrl1', function($scope){
});
括号:
project.controller('Ctrl1', ['$scope', function($scope){
}]);
答案 1 :(得分:1)
想出来。 我输了'[]'
这是正确的方法
project.controller('Ctrl1', ['$scope', function(scope){
}]);