Ember 个带有 itemController 的组件
Ember components with itemController
我在路线 posts
上有 1 条时间线,有 2 种 post:来自 facebook 和来自 twitter,两者都使用相同的控制器:post
有 2 种方法:isFacebook
和 isTwitter
.
每种类型的 post 和一个 'post-index' 都有一个组件,使用这 2 种方法重新生成正确的组件。
路线 post
默认 ArrayController
:
<ul class="timeline">
{{#each post in model itemController="posts.post"}}
<li> {{post-index post=post}} </li>
{{/each}}
</ul>
post-指数
{{#if post.isFacebook}}
{{post-facebook post=post}}
{{/if}}
{{#if post.isTwitter}}
{{post-twitter post=post}}
{{/if}}
{{yield}}
问题是当我尝试在路由 post.post
中使用 post-index 模板渲染单个 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"
但是 post.post
没有。我该怎么办?
如果我对你的问题理解正确,你想知道如何将 post 本身传递给 post 再传递给 post-index
的 post
属性 .
如果是这样,您可以修改您的代码如下:
<ul class="timeline">
{{#each post in model}}
<li> {{post-index post=this}} </li>
{{/each}}
</ul>
唯一的变化是将post更改为this
。由于您在 each
块中,this
将传递当前迭代的项目。
我在路线 posts
上有 1 条时间线,有 2 种 post:来自 facebook 和来自 twitter,两者都使用相同的控制器:post
有 2 种方法:isFacebook
和 isTwitter
.
每种类型的 post 和一个 'post-index' 都有一个组件,使用这 2 种方法重新生成正确的组件。
路线 post
默认 ArrayController
:
<ul class="timeline">
{{#each post in model itemController="posts.post"}}
<li> {{post-index post=post}} </li>
{{/each}}
</ul>
post-指数
{{#if post.isFacebook}}
{{post-facebook post=post}}
{{/if}}
{{#if post.isTwitter}}
{{post-twitter post=post}}
{{/if}}
{{yield}}
问题是当我尝试在路由 post.post
中使用 post-index 模板渲染单个 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"
但是 post.post
没有。我该怎么办?
如果我对你的问题理解正确,你想知道如何将 post 本身传递给 post 再传递给 post-index
的 post
属性 .
如果是这样,您可以修改您的代码如下:
<ul class="timeline">
{{#each post in model}}
<li> {{post-index post=this}} </li>
{{/each}}
</ul>
唯一的变化是将post更改为this
。由于您在 each
块中,this
将传递当前迭代的项目。