使用itemController的Ember组件

时间:2015-02-10 22:53:00

标签: ember.js ember-cli

我在路由posts上有1个时间轴,有2种类型的帖子:来自facebook和来自Twitter,两个都有相同的控制器:post有两种方法:isFacebook和{{1} }。

对于每种类型的帖子都有一个组件,并且使用这两种方法重新组合正确的组件后的“后索引”。

使用默认isTwitter路由post

ArrayController

折射率交

 <ul class="timeline">
  {{#each post in model itemController="posts.post"}}
    <li> {{post-index post=post}} </li>
  {{/each}}
</ul>

问题是当我尝试使用post-index模板在路由{{#if post.isFacebook}} {{post-facebook post=post}} {{/if}} {{#if post.isTwitter}} {{post-twitter post=post}} {{/if}} {{yield}} 中呈现单个帖子时 路线:

post.post

模板:

export default Ember.Route.extend({
    setupController(controller, model) {
        this._super(controller, model);
        controller.set('model', model);
  }
});

我的路线 <ul class="timeline"> {{#each post in model}} <li> {{post-index post=post}} </li> {{/each}} </ul> 仅有效,因为它有postsitemController="posts.post"没有。我应该做什么?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您想知道如何将帖子本身传递到post post-index <ul class="timeline"> {{#each post in model}} <li> {{post-index post=this}} </li> {{/each}} </ul> 属性的帖子。

如果是这样,您可以按如下方式修改代码:

this

唯一的变化是将帖子更改为each。由于您位于this区块中{{1}}将传递当前迭代的项目。