每个其他人或号码的把手和MeteorJs [英] Handlebars and MeteorJs for every other or number

查看:120
本文介绍了每个其他人或号码的把手和MeteorJs的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


$ b $我试图创建一个Handlebars.registerHelper(),它会将我的{{>模板}}包裹在{{each items}}中。 b

所以像这样;

  {{forevery items 4}} 
{{> item_row_template}}
{{/ forevery}}

期望的结果是每4项目围绕一个div。

 < div class =row> 
< div class =item_1>项目< / div>
< div class =item_2>项目< / div>
< div class =item_3>项目< / div>
< div class =item_4>项目< / div>
< / div>

< div class =row>
< div class =item_1>项目< / div>
< div class =item_2>项目< / div>
< div class =item_3>项目< / div>
< div class =item_4>项目< / div>
< / div>

etc ...

解决方案

你想要做的是创建一个帮助器,它将遍历列表并手动追加div。每一次都是这样。



这是一个例如:

  Handlebars.registerHelper('forevery',function(context,limit,options){
var ret = ;
if(context.length> 0){
ret + =< div>;
for(var i = 0,j = context.length; i< j(i + 1)%limit === 0){
ret + = < / div>< div>;
}
}
ret + =< / div>;
}
return ret;
});

这个函数会遍历整个项目的数组,并且每隔一行就会关闭一个div并打开一个新的一个。所以这就是所谓的:

  {{#forevery items 3}} 
{{> item_row_template}}
{{/ forevery}}

希望这有助于:)


I'm trying to create a Handlebars.registerHelper() that would wrap my {{>template}} in an {{each items}} for every number I enter.

So something like this;

{{forevery items 4}}
    {{> item_row_template}}
{{/forevery}}

The desired result would be for every 4 items wrap it around a div.

<div class="row">
    <div class="item_1">item</div>
    <div class="item_2">item</div>
    <div class="item_3">item</div>
    <div class="item_4">item</div>
</div>

<div class="row">
    <div class="item_1">item</div>
    <div class="item_2">item</div>
    <div class="item_3">item</div>
    <div class="item_4">item</div>
</div>

etc...

解决方案

what you want to do is create a helper that will iterate over the list and manually append the divs every so often.

Here is an example:

Handlebars.registerHelper('forevery', function(context, limit, options) {
    var ret = "";
    if (context.length > 0) {
        ret += "<div>";
        for(var i=0, j=context.length; i<j; i++) {
            ret = ret + options.fn(context[i]);
            if ( (i+1) % limit === 0 ) {
                ret += "</div><div>";
            }
        }
        ret += "</div>";
    }
    return ret;
});

This function will loop through the array of items and every nth row it will close a div and open a new one. So this would be called like:

{{#forevery items 3}}
    {{> item_row_template}}
{{/forevery}}

Hope this helps :)

这篇关于每个其他人或号码的把手和MeteorJs的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆