use*_*182 4 helper increment handlebars.js ember.js grunt-ember-templates
我觉得我可能会为一个简单的问题做很多事情.
如果index = 0,我如何index在模板中增加.
理想情况下,我想做这样的事情.
{{index+1}}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,解决方案是编写如下的辅助函数.
import Ember from 'ember';
export function plusOne(params) {
return parseInt(params) + 1;
}
export default Ember.HTMLBars.makeBoundHelper(plusOne);
Run Code Online (Sandbox Code Playgroud)
然后在模板中,您将执行以下操作.
{{plus-one index}}
Run Code Online (Sandbox Code Playgroud)
所以希望,我错了,有一个更简单的方法来做到这一点.并且可能是在模板中进行"简单"处理的更简单方法.不确定是否存在异议,因为模板中可能存在"太多"逻辑.
任何有关这方面的指导将不胜感激.
谢谢!
最简洁的答案是不.模板中没有办法做任何真正的计算逻辑.帮助是在模板中向索引添加1的最佳选择.
当然,人们会想知道为什么你想要为任何索引添加+1呢?可能以非零方式标记您的itterations?在这种情况下,你不会渲染有序列表吗?
<ol>
{{#each model as |foo|}}
<li>{{foo.bar}}</li>
{{/each}}
</ol>
Run Code Online (Sandbox Code Playgroud)
导致:
另一种可能性是(作为每个索引使用帮助器的替代方法)
model: ['Foo', 'Man', 'Chu']
foosWithCount: Ember.computed.map('model', function(foo, index) {
return Ember.Object.create({
name: foo,
count: index + 1
});
});
Run Code Online (Sandbox Code Playgroud)
然后
{{#each foosWithCount as |foo|}}
<p>I'm {{foo.name}} and I'm #{{foo.count}}</p>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
导致:
我是Foo而我是#1
我是男人,我是#2
我是楚,我是#3
| 归档时间: |
|
| 查看次数: |
3571 次 |
| 最近记录: |