Ember.js: 哪个控制器负责?

Ember.js: Which controller is in charge?

我有什么

ember-cli POD 结构。 我有嵌套的路线,所以有以下文件夹结构:

|
|_pods
     |_items
          |_index
          |     |_controller.js
          |     |_route.js
          |     |_template.hbs
          |_item
                |_controller.js

我正在 items/index/route.js 的模型挂钩中加载模型的所有项目记录。在我的索引模板中,我正在迭代项目模型中的所有项目。

{{#each model as |item|}}
  ...
{{/each}}

效果很好。现在我想从 alpha(单一)控制器调用一些属性,所以我在每个助手中添加了 itemController-Properties:

{{#each model itemController='items.item' as |item|}}

现在我可以在我的模板中访问每个项目的属性,例如在 alpha 控制器中定义的 {{item.myTestMethod}}

问题是什么?

但由于某些原因,每个循环之间的其他部分不再可访问(例如 {{item.title}} 是一个模型 属性)。此外,Ember-Inspector 现在在 "View Tree"-Tab 中向我展示了两个条目,一个对应于 each-loop 中的每个项目。

有人可以解释一下吗?

控制器不再代理模型的属性。您需要完全限定要访问的 属性。该模型现在是控制器上的 属性 model(这是现在的项目)。

属性 模特

{{item.model.title}}

属性 在控制器上

{{item.fooProp}}