Angularjs 如何启动控制器?
在脚本标记中尝试使用不同的语法启动控制器时,我遇到了一个问题 为什么这样做有效:Angularjs 如何启动控制器?,angularjs,Angularjs,在脚本标记中尝试使用不同的语法启动控制器时,我遇到了一个问题 为什么这样做有效: function ListCtrl($scope, Projects) { $scope.projects = Projects; } 这不是: myProject.controller('ListCtrl', ['$scope', 'Projects', function ($scope, Projects) { $scope.projects = Projects; }]); 这是一个完整的
function ListCtrl($scope, Projects) {
$scope.projects = Projects;
}
这不是:
myProject.controller('ListCtrl', ['$scope', 'Projects', function ($scope, Projects) {
$scope.projects = Projects;
}]);
这是一个完整的plunker
提前感谢,,
-Jan使用.strong>控制器语法时,还需要将使用函数引用的所有路由更改为使用字符串引用 有趣的是:在定义全局控制器函数时,使用字符串引用也会起作用,但当前的最佳实践是使用.controller语法并避免使用全局函数
var myProject = angular.module('project', ['firebase']).
value('fbURL', 'https://angularjs-projects.firebaseio.com/').
factory('Projects', function(angularFireCollection, fbURL) {
return angularFireCollection(fbURL);
}).
config(function($routeProvider) {
$routeProvider.
when('/', {controller:'ListCtrl', templateUrl:'list.html'}).
otherwise({redirectTo:'/'});
});
// function ListCtrl($scope, Projects) {
// $scope.projects = Projects;
// }
// next 3 lines will work
myProject.controller('ListCtrl', ['$scope', 'Projects', function ($scope, Projects) {
$scope.projects = Projects;
}]);
你们现在也可以投票了,祝贺你们,欢迎来到SO