我刚开始学 Angular.js 我一直在看 在 Angular 主页的“ Wire up a Backend”示例中的 project.js。
我对控制器函数中的参数感到困惑:
function ListCtrl($scope, Projects) {
...
}
function CreateCtrl($scope, $location, $timeout, Projects) {
...
}
function EditCtrl($scope, $location, $routeParams, angularFire, fbURL) {
angularFire(fbURL + $routeParams.projectId, $scope, 'remote', {}).
then(function() {
...
});
}
这些控制器函数在 routeProvider 中调用,但是没有给出任何参数。
$routeProvider.
when('/', {controller:ListCtrl, templateUrl:'list.html'}).
when('/edit/:projectId', {controller:EditCtrl, templateUrl:'detail.html'}).
when('/new', {controller:CreateCtrl, templateUrl:'detail.html'}).
otherwise({redirectTo:'/'});
});
到目前为止,我能找到的唯一可能解释发生了什么的东西是 “向控制器注入服务”,它解释了 $location
、 $timeout
,但没有解释参数方法 angularFire
和 fbURL
。
我的具体问题是:
控制器参数可以是什么?
用参数调用的控制器函数在哪里?或者参数没有被调用,而只是与控制器相关联的东西,在这些控制器中出现了许多 Angular.js 的魔法(如果是这样,我可以在 github 上看到源代码吗?)?
angularFire
在哪里定义?
参数中的 fbURL
如何链接到:
angular.module('project', ['firebase']).
value('fbURL', 'https://angularjs-projects.firebaseio.com/').
factory ...
Is there a place where I can see all the services, e.g. $location
and $timeout
, that Angular.js provides? (I tried to find the list but failed.)