0

如何正确定义控制器?

我想使用这种形式的定义:

“在真正的应用程序中,您应该为您的应用程序使用 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'不是函数,得到字符串”错误在哪里?

4

2 回答 2

2

示例控制器代码使用括号符号来定义控制器。当你想最小化生产代码时,这个符号很有用,它明确地告诉 Angular 它应该期望的依赖项是什么。在您的代码中,您要么需要删除名称和函数之间的额外 $scope,要么添加括号。

无括号:

project.controller('Ctrl1', function($scope){

});

带括号:

project.controller('Ctrl1', ['$scope', function($scope){

}]);
于 2013-10-18T03:42:13.773 回答
1

弄清楚了。我输了 '[]'

这是正确的方法

project.controller('Ctrl1', ['$scope', function(scope){

}]);
于 2013-10-18T03:41:33.637 回答