Sample Angular-App如何知道如何获得“项目”?

时间:2014-12-04 17:22:01

标签: javascript angularjs angularjs-directive dependencies

我正在观看Pawel Kozlowski和Peter Bacon Darwin的热门Sample Angular App

我很难理解文件projects.html中的行

<tr ng-repeat="project in projects">

设法获得projects

我试图追踪管道,但我正在走向死胡同。

我可以看到整个projects.html被路由器放入index.html文件中。该区域的控制器称为AppCtrl。但是,查看此控制器,没有迹象表明从服务器获取projects并将其存储在范围内与远程相关。

我完全不知道这些项目是如何进入我的屏幕的。

有人可以解释一下吗?我忘记了: - (

2 个答案:

答案 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变量。