Ember.js:哪个控制器负责? 我所拥有的

Ember.js:哪个控制器负责? 我所拥有的,ember.js,ember-cli,Ember.js,Ember Cli,余烬荚结构。 我有嵌套的路由,因此有以下文件夹结构: | |_pods |_items |_index | |_controller.js | |_route.js | |_template.hbs |_item |_controller.js 我正在items/index/route.js的模型钩子中加载模型的所有项目记录。在我

余烬荚结构。 我有嵌套的路由,因此有以下文件夹结构:

|
|_pods
     |_items
          |_index
          |     |_controller.js
          |     |_route.js
          |     |_template.hbs
          |_item
                |_controller.js
我正在items/index/route.js的模型钩子中加载模型的所有项目记录。在我的索引模板中,我迭代项目模型中的所有项目

{{#each model as |item|}}
  ...
{{/each}}
那很好。现在我想从alpha(singular)控制器调用一些属性,因此我在每个帮助器中添加了itemController属性:

{{#each model itemController='items.item' as |item|}}
现在,我可以访问模板中每个项目的属性,如alpha控制器中定义的
{{{item.myTestMethod}}

有什么问题? 但是由于某些原因,each循环之间的其他部分不再可访问(比如
{{{item.title}}
,这是一个模型属性)。此外,灰烬检查器现在在“视图树”选项卡中为我显示了另外两个条目,每个循环中的每个项目都有一个条目


有人能解释一下吗?

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

模型上的属性 控制器上的属性
我非常感谢你!!但是如何从控制器本身访问属性呢?items/index/controller.js
test:function(){console.log(“items-controller:+this.get('model.title'));}.property('model.title')
。在我的模板中,可以通过
{{model.items}}
直接访问父模型,但不在索引路由的控制器中。我可能读错了,但索引路由中的模型不是项的集合吗?因此,
title
不存在于集合本身,而是存在于每个单独的项目上<代码>测试:function(){console.log(“items controller:+this.get('model').getEach('title'));}.property('model.@each.title')
{{item.model.title}}
{{item.fooProp}}