如何在DustJS中编写案例条件表达式?

时间:2014-04-10 07:29:44

标签: javascript node.js dust.js

我在Javascript中有一个数组类型:

var type=[0,1,2,3,4,5];

相应的键值对集合实际上是这样的;

[{0:'Pointer'},{1:'Line'},{2:'Oval'},{3:'Rectangle'},{4:'Ellipse'},{5,'Star'}]

我的.dust文件显示{type}标记,我该如何显示其对应的值?

1 个答案:

答案 0 :(得分:0)

您可以使用自定义过滤器。大致的实施将是:

var mapping = {
    '0':'Pointer',
    '1':'Line',
    '2':'Oval',
    '3':'Rectangle',
    '4':'Ellipse',
    '5':'Star'
};

dust.filters['typeFilter'] = function(value) {
    return mapping[value] || '';
}

在你的模板中:{type|typeFilter}

将映射存储在对象而不是数组中要简单一些。对于你的数组版本,它将是:

var mapping = [{0:'Pointer'},{1:'Line'},{2:'Oval'},{3:'Rectangle'},{4:'Ellipse'},{5:'Star'}];
dust.filters['typeFilter'] = function(value) {
    var typeId = parseInt(value);
    for(var len = mapping.length - 1; len >=0; len--) {
        if (mapping[len].hasOwnProperty(typeId)) {
            return mapping[len][typeId];
        }
    }
    return '';
}

更多信息here