仅显示列表中一个元素的标记。ember.js.(隐形收藏,对话)

仅显示列表中一个元素的标记。ember.js.(隐形收藏,对话),ember.js,discourse,Ember.js,Discourse,我有一个比我需要使用ember.js的源代码(论述)。我正在尝试使用隐藏集合处理列表中的一个“post”(第一个) //topics.hbs {{#unless model.postStream.loadingFilter}} {{cloaked-collection itemViewClass="post" defaultHeight="200"

我有一个比我需要使用
ember.js
的源代码(论述)。我正在尝试使用
隐藏集合处理列表中的一个“post”(第一个)

//topics.hbs
    {{#unless model.postStream.loadingFilter}}
            {{cloaked-collection itemViewClass="post"
                                 defaultHeight="200"
                                 content=postsToRender
                                 slackRatio="15"
                                 loadingHTML=""
                                 preservesContext="true"
                                 uncloakDefault="true"
                                 offsetFixedTop="header"
                                 offsetFixedBottom="#reply-control"}}
          {{/unless}}
//post.hbs
//some code here. 
//Then I want to insert <div class="uniw"></div> only on the first post
//topics.hbs
{{#除非model.postStream.loadingFilter}
{{隐藏的集合itemViewClass=“post”
defaultHeight=“200”
content=postsToRender
松弛比=“15”
loadingHTML=“”
preservesContext=“true”
uncloakDefault=“true”
offsetFixedTop=“header”
OffsetFixedBooth=“#应答控制”}”
{{/除非}
//博士后
//这里有一些代码。
//那么我只想在第一篇文章中插入
问题是:对于
itemViewClass=“post”
的列表,如何检查我是否在第一个“post”中?这样我就可以在代码中插入一个片段。

您应该能够使用来获取集合的第一个对象。大概是这样的:

{{items.firstObject}}
在每个块内,您可以检查索引:

{{#each people as |person index|}}
  {{#if (is-equal index 0)}}
    {{person}}
  {{/if}}
{{/each}}

请注意,is equal是非标准辅助对象。您可以从插件获取它,也可以自己编写它

您可以看到代码正在使用
隐藏集合
。我不确定你的解决方案是否适合我发布的代码,这似乎是一段旧代码;这取决于
Ember.View
,正如您所见。因为,
隐藏的集合
不是一个组件,并且似乎没有提供上下文组件用法;恐怕你不能达到你想要的。如果您的项目不是必须使用的旧式应用程序,则必须使用
隐藏的集合
;我建议搜索并升级到一个更新的插件。谢谢你的回复,但我最终通过javascript/jquery完成了我的解决方案,并在html呈现后插入了元素。