Javascript 如何在DustJS中编写case条件表达式?

Javascript 如何在DustJS中编写case条件表达式?,javascript,node.js,dust.js,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'}] My.dust文件显示{type}标记,如何显示其相应的值?您可以使用自定义筛选器。大致的实施方式是: var mapping = { '0':'Pointer', '1':'Line',

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

var type=[0,1,2,3,4,5];
对应的键值对集合实际上是这样的

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

My.dust文件显示{type}标记,如何显示其相应的值?

您可以使用自定义筛选器。大致的实施方式是:

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 '';
}
再多了解一点