为什么我的Ember.ArrayController itemControllers未定义?

时间:2013-09-21 21:16:29

标签: ember.js

在我开始重命名一些东西之前工作,特别是ArrayController本身。
这是我的代码:

// list_missions.js
Create.ListMissionsController = Ember.ArrayController.extend({
  itemController: 'listMissionsItem',
});

// list_mission.js
Create.ListMissionsItemController = Ember.ObjectController.extend({
  needs: ['listMissions'],
});
{{#each mission in controllers.listMissions
  itemViewClass="Create.ListMissionsItemView"}}
  <div>{{mission.name}}</div>
{{/each}}

也许是因为我用过滤器设置内容的方式?
在路线中像这样:

    var missions = Breadcrumb.Mission.query({
      list: model.get('id'), range_size: 150});
    var missionsFilter = Breadcrumb.Mission.filter(
      function(m) { return m.get('list') === model; });
    this.controllerFor('listMissions').set('content', missionsFilter);

应该正常工作吗?但经过检查,listMissions._subControllers都是未定义的:(
什么可能导致itemController无法正确注册?

1 个答案:

答案 0 :(得分:0)

这是因为我有一个同名的路线:

Create.ListMissionsRoute = Breadcrumb.Route.extend({ ...

用于不具有显式控制器的不同视图,因为它是一个从不访问的中间路径。因此,为什么我在查找和替换期间没有捕获它。呃,简单的错误。