Ember.js 余烬-如果每个中的最后一项
我试图在一个each-in-ember中的最后一项下显示一段标记——我尝试了类似@last的东西,但它返回时出现了一个错误Ember.js 余烬-如果每个中的最后一项,ember.js,Ember.js,我试图在一个each-in-ember中的最后一项下显示一段标记——我尝试了类似@last的东西,但它返回时出现了一个错误 <ul> {{#each people as |person index|}} <li>Hello, {{person.name}}! You're number {{index}} in line</li> {{/each}} </ul> {{{#每个人作为|个人索引} 你好,{{person.name}
<ul>
{{#each people as |person index|}}
<li>Hello, {{person.name}}! You're number {{index}} in line</li>
{{/each}}
</ul>
{{{#每个人作为|个人索引}
- 你好,{{person.name}}!你的号码是{{index}}
{{/每个}}
Ember的{{{each}}
模板帮助程序没有提供一种简单的方法
正如您可能想到的,您可以使用{{{inspect index}}
有条件地呈现第一个对象上的内容。这是有效的,因为索引从零开始,0
被认为是错误的
您可以合并并获得与最后一个元素相当的结果。两者都是维护良好的ember插件,提供了一整套模板帮助程序
Ember truth helpers提供了一个eq
帮助程序,它增加了对模板中相等比较的支持。Ember math helpers提供了一个子帮助程序,用于从模板中的另一个值中减去一个值。将两者结合起来,我们可以建立一个仅对最后一个元素为真的条件:
{{#each items as |item index|}}
<li>
{{item}}
{{#unless index}}(first){{/unless}}
{{#if (eq index (sub items.length 1))}}(last){{/if}}
</li>
{{/each}}
{{{#每个项目作为|项目索引|}
{{item}}
{{{除非索引}}(第一){{/除非}
{{#if(eq-index(sub-items.length))}(last){{/if}
{{/每个}}
您可以在此处找到一个演示该方法的余烬旋转:
如果数组是一个数组,则更简单<余烬的code>NativeArray
提供了一个指向数组中最后一项的。正如@Gaurav在评论中指出的那样,您可以直接使用该方法进行相等的比较:{{{{if(eq item items.lastObject)}(last){/if}
,但是要注意,如果数组中有重复的元素,这可能会给出错误的结果。Ember的{each}
模板帮助程序并没有提供一种简单的方法来实现这一点
正如您可能想到的,您可以使用{{{inspect index}}
有条件地呈现第一个对象上的内容。这是有效的,因为索引从零开始,0
被认为是错误的
您可以合并并获得与最后一个元素相当的结果。两者都是维护良好的ember插件,提供了一整套模板帮助程序
Ember truth helpers提供了一个eq
帮助程序,它增加了对模板中相等比较的支持。Ember math helpers提供了一个子帮助程序,用于从模板中的另一个值中减去一个值。将两者结合起来,我们可以建立一个仅对最后一个元素为真的条件:
{{#each items as |item index|}}
<li>
{{item}}
{{#unless index}}(first){{/unless}}
{{#if (eq index (sub items.length 1))}}(last){{/if}}
</li>
{{/each}}
{{{#每个项目作为|项目索引|}
{{item}}
{{{除非索引}}(第一){{/除非}
{{#if(eq-index(sub-items.length))}(last){{/if}
{{/每个}}
您可以在此处找到一个演示该方法的余烬旋转:
如果数组是一个数组,则更简单<余烬的code>NativeArray
提供了一个指向数组中最后一项的。正如@Gaurav在一篇评论中指出的那样,您可以直接使用它进行相等的比较:{{{{if(eq item items.lastObject)}(last){/if}
,但是要注意,如果数组中有重复的元素,这可能会给出错误的结果。我必须添加余烬数学模块{{{if(eq item items.lastObject)}(last)}(last){/if}
@Gaurav当然可以。这是一个更好的解决方案。你想把它作为一个单独的答案添加,还是我应该把它包含在我的答案中?你能把它添加到你的答案中吗answer@Gaurav的解决方案只有在列表中没有重复对象时才可靠。我必须添加余烬数学模块{{{if(eq item items.lastObject)}}(last){{/if}
@Gaurav当然了。这是一个更好的解决方案。你想把它作为一个单独的答案添加,还是我应该把它包含在我的答案中?你能把它添加到你的答案中吗answer@Gaurav的解决方案只有在列表中没有重复对象时才可靠。