我写了一个显示推文的小插件。以下是循环显示推文的代码。
<script id="tweets-template" type="text/x-handlebars-template" > {{#each this}} <li> <p>{{tweet}}</p> <span id="author">{{author}}<span/> </li> {{/each}} </script>
但是我想做的是将tweet的数量限制为5或10.但是循环列出了所有可用的推文。如何限制像循环中的推文。喜欢
for(i=0;i<5;i++){display the tweets}
解决方法
我想你有两个选择:
>将其收集的大小限制在Handlebars之前。
>编写自己的块助手,让您指定一个限制。
实际的each
implementation是非常简单的,所以适应包括上限是相当简单的:
// Warning: untested code Handlebars.registerHelper('each_upto',function(ary,max,options) { if(!ary || ary.length == 0) return options.inverse(this); var result = [ ]; for(var i = 0; i < max && i < ary.length; ++i) result.push(options.fn(ary[i])); return result.join(''); });
然后在你的模板中:
<script id="tweets-template" type="text/x-handlebars-template" > {{#each_upto this 5}} <li> <p>{{tweet}}</p> <span id="author">{{author}}<span/> </li> {{/each_upto}} </script>