我正在观看Pawel Kozlowski和Peter Bacon Darwin的热门Sample Angular App。
我很难理解文件projects.html
中的行
<tr ng-repeat="project in projects">
设法获得projects
。
我试图追踪管道,但我正在走向死胡同。
我可以看到整个projects.html
被路由器放入index.html
文件中。该区域的控制器称为AppCtrl
。但是,查看此控制器,没有迹象表明从服务器获取projects
并将其存储在范围内与远程相关。
我完全不知道这些项目是如何进入我的屏幕的。
有人可以解释一下吗?我忘记了: - (
答案 0 :(得分:1)
在这里定义了projects.html页面的路由和控制器:
https://github.com/angular-app/angular-app/blob/master/client/src/app/projects/projects.js
'resolve'确实可以通过API来加载项目:
resolve:{
projects:['Projects', function (Projects) {
//TODO: fetch only for the current user
return Projects.all();
}],
authenticatedUser: securityAuthorizationProvider.requireAuthenticatedUser
}
然后将projects
依赖注入控制器并在此处使用:
$scope.projects = projects;
答案 1 :(得分:0)
就在这里:
https://github.com/angular-app/angular-app/blob/master/client/src/app/projects/projects.js
.config(['$routeProvider', 'securityAuthorizationProvider', function ($routeProvider, securityAuthorizationProvider) {
$routeProvider.when('/projects', {
templateUrl:'projects/projects-list.tpl.html',
controller:'ProjectsViewCtrl',
resolve:{
projects:['Projects', function (Projects) {
//TODO: fetch only for the current user
return Projects.all();
}],
authenticatedUser: securityAuthorizationProvider.requireAuthenticatedUser
}
});
}])
正如您所看到的那样,ProjectsViewCtrl
被传递给该视图,并且从那里获取了projects变量。