在XTempate中循环遍历数组和执行语句

时间:2017-04-23 17:05:57

标签: javascript extjs

我有一个自定义组件,有这样的商店:

"store":{
    "fields":["name"],
    "data":[{
        "id":"1","name":"John","checked":"truec","tools":["user","doc"]
     },{
        "id":"2","name":"Jack","checked":"false","tools":["user"]
     }]
}

我有一个模板,我在自定义Ext.ux.CheckList中使用。它工作得很好,除了一件小事 - 我不知道如何遍历tools数组。这就是我现在所拥有的:

'<tpl for="tools">',
 // if (curValue == "user") '<div>Value 1</div>'
 // else if (curValue == "doc") '<div>Value 2</div>'           
'</tpl>'

我看过thisthis个例子,但它们并没有解决我的问题。 如您所见,我想在循环中使用tools值:

if (curValue == "user") '<div>Value 1</div>'
else if (curValue == "doc") '<div>Value 2</div>'

但我不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

迭代平面数组时当前索引的值可以通过标记中的“{。}”和条件语句中的“values”属性进行访问。

Sencha Fiddle: An Example of Iterating Through a Flat Array

var template = new Ext.XTemplate(
    '<tpl for=".">',
        '<p>{name}</p>',
        '<tpl for="tags">',
            '<tpl if="values === \'user\'">',
                '<p>{.}</p>',
            '<tpl elseif="values === \'doc\'">',
                '<pre>{.}</pre>',
            '</tpl>',
        '</tpl>',
        '<br>',
    '</tpl>'
);

https://www.sencha.com/forum/showthread.php?320083 http://docs.sencha.com/extjs/6.2.0/classic/Ext.XTemplate.html