【问题标题】:Defining iterative block helpers in Meteor 0.8在 Meteor 0.8 中定义迭代块助手
【发布时间】:2014-05-10 02:38:40
【问题描述】:

在 0.8 版之前,可以使用常规的 Handlebars 方式来定义迭代块助手,例如流行的 each_with_key,定义如下,例如 here

Handlebars.registerHelper("each_with_key", function(obj, fn) {
    var context,
        buffer = "",
        key,
        keyName = fn.hash.key;

    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            context = obj[key];

            if (keyName) {
                context[keyName] = key;
            }

            buffer += fn(context);
        }
    }

    return buffer;
});

这在 0.8 中不再有效,the migration guidespacebars documentation 显示一个例子。

鉴于块帮助器现在被视为包含,并且包含需要返回一个模板(或 null),而不是 HTML,我现在对这是否以及如何实现这一点毫无头绪。

【问题讨论】:

    标签: meteor spacebars


    【解决方案1】:

    就在我准备放弃的时候,我想通了。事实上,现在 0.8 比以前更容易、更漂亮。以下似乎效果很好:

    JS:

    UI.registerHelper('addKeys', function (all) {
        return _.map(all, function(i, k) {
            return {key: k, value: i};
        });
    });
    

    HTML:

    {{#each addKeys obj}}
    <div>
       {{key}}: {{value}}
    </div>
    {{/each}}
    

    【讨论】:

    猜你喜欢
    • 2013-06-10
    • 1970-01-01
    • 2015-01-26
    • 2019-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    相关资源
    最近更新 更多