Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js:在布局中生成特定对象_Ember.js - Fatal编程技术网

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}}