2014-04-10 53 views
0

我有在Javascript一個陣列型:如何在DustJS中編寫案例條件表達式?

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

對應密鑰值對集合實際上是這樣的;

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

我的.dust文件顯示{type}標記,應該如何顯示它們的相應值?

回答

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