我目前正在使用车把来动态填充某些面板。在其中之一中,我感到有必要重复执行给定的任务。
// Add a looping helper for Handlebars
Handlebars.registerHelper('repeat', function(nFrom, nTo, oBlock) {
var sResult = '';
for (var i=nFrom; i < nTo+1; i++)
sResult += oBlock.fn(i);
return sResult;
});
{{#if oSomeObject}}
<ul>
{{# repeat 1 2}}
<li>{{../oSomeObject.aSomeProperty[{{this}}]</li> <!-- Does not work (because of nested curlies) -->
<li>{{../oSomeObject.aSomeProperty[this]}}</li> <!-- Does not work -->
{{/repeat}}
</ul>
{{/if}}
我有什么已知的方法可以在我的repeat
块中访问数组的内容吗?
我会这样:
Handlebars.registerHelper('myHelper', function(object, nFrom, nTo, oBlock){
var sResult = '';
for(var i=nFrom; i<nTo+1; i++)
sResult += oBlock.fn(object[i]);
return sResult;
});
或者,如果你想迭代虽然所有的的oSomeObject
的
Handlebars.registerHelper('myHelper', function(object, oBlock){
var sResult = '';
for(var i=0; i<object.length; i++)
sResult += oBlock.fn(object[i]);
return sResult;
});
那么您可以通过以下方式调用它:
{{#myHelper oSomeObject}}
<li>{{aSomeProperty}}</li>
{{/myHelper}}
这实际上与把手的each
块帮助器相同,因此您可以只使用:
{{#each oSomeObject}}
<li>{{aSomeProperty}}</li>
{{/each}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句