我刚刚开始学习Angular.js,并且一直在Angular主页上的“连接后端”示例中查看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 ...
在哪里可以看到Angular.js提供的所有服务,例如
$location
和$timeout
?(我试图找到列表,但失败了。)