我在路由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>
仅有效,因为它有posts
但itemController="posts.post"
没有。我应该做什么?
答案 0 :(得分:0)
如果我正确理解您的问题,您想知道如何将帖子本身传递到post
post-index
<ul class="timeline">
{{#each post in model}}
<li> {{post-index post=this}} </li>
{{/each}}
</ul>
属性的帖子。
如果是这样,您可以按如下方式修改代码:
this
唯一的变化是将帖子更改为each
。由于您位于this
区块中{{1}}将传递当前迭代的项目。