Ember.js:在布局中生成特定对象
我想创建一个布局,在其中我使用Ember.js:在布局中生成特定对象,ember.js,Ember.js,我想创建一个布局,在其中我使用#each迭代一个集合,然后将该对象传递给yield。可能吗 我希望实现的是: <!-- timeline_layout.hbs --> <div id="timeline-container"> {{#each entry in controller}} <div class='timeline-entry'> {{yield entry}} </div> {{/each}}
#each
迭代一个集合,然后将该对象传递给yield。可能吗
我希望实现的是:
<!-- timeline_layout.hbs -->
<div id="timeline-container">
{{#each entry in controller}}
<div class='timeline-entry'>
{{yield entry}}
</div>
{{/each}}
</div>
<!-- timeline_instance.hbs (timeline with posts) -->
{{#view App.Timeline}} <!-- has layout set to timeline_layout -->
{{render 'post' entry}}
{{/view}}
{{{#控制器中的每个条目}
{{yield entry}}
{{/每个}}
{{{#查看App.Timeline}
{{render'post'条目}
{{/view}
如果我猜这是不可能的,对吗?因为
render'post'
无法知道该条目。那么,ember如何封装时间线的一般html结构呢?“用作布局的模板必须包含一个单独使用的把手{{yield}}helper。”。您的方法基本上打破了这一规则,因为您试图为控制器中的每个条目创建一个新的收益率-您应该考虑将每个条目重构到模板中。我不太确定是否理解您想要的内容,但不应该将{{view App.TimelineEntryView contentBinding=“entry”}
或类似的东西放入你的中,每个都能做到吗?问题是时间线可能包含不同类型的内容,例如帖子、评论、图像上传。即,对于系统的每个“操作”,都会有一个时间线条目。因此,基本上TimelineEntryView应该根据对象的类型呈现不同的模板。那么,只需使用多个视图和{{if}}
。