【问题标题】:handlebars.js Trying to pass an json array into a helper function and then itrerate ithandlebars.js 尝试将 json 数组传递给辅助函数,然后对其进行迭代
【发布时间】:2014-06-28 23:03:11
【问题描述】:

我是 Handlebars.js 的新手,我有一个 json 对象,其中包含更多对象的子数组。 我已经弄清楚如何使用以下语法访问网页中的数据 {{{V.0.D}}} V 是子数组的名称,0 是本次迭代,D 是子数组。

我在将 V 数组传递给帮助程序并弄清楚如何迭代该数组以便从其中一个子对象返回数据时遇到问题。

到目前为止,这是我的助手:

Handlebars.registerHelper('getRegion', function (descData) {
    for (desc in descData) {
        console.log('descData.D:' + desc.D);
    }

    return something;

});

这是我的来电者:

{{getRegion V}}

我不断收到 desc.D is undefined 错误。

我认为我不需要块助手,因为我不需要列出所有子对象。

我确信这很简单,但我无法弄清楚我错过了什么。谢谢。

【问题讨论】:

    标签: json handlebars.js


    【解决方案1】:

    for in 应该用于循环对象的可枚举属性。这是来自MDN 的参考。

    你的助手应该修改为

    Handlebars.registerHelper('getRegion', function (descData) {
        for (index in descData) {
            console.log('descData.D:' + descData[index].D);
        }
    
        return something;
    
    });
    

    这里是使用数组的forEach 的助手

    Handlebars.registerHelper('getRegion', function (descData) {
        var str = '';
        descData.forEach(function(desc) {
            console.log('descData.D:' + desc.D);
            str += ' '+ desc.D;
        });
    
        return str ;
    
    });
    

    【讨论】:

    • 非常感谢。完美运行。
    猜你喜欢
    • 1970-01-01
    • 2013-01-16
    • 2016-04-16
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多