我的JSON大部分时间都在这两个结构中:“type”和“comments”。有时它有“类型”,“调查”,“评论”。所以,我想使用“if”让ext.xtemplate显示它找到的那些。例如,我尝试过但不起作用:
new Ext.XTemplate(
'<div style="text-align:justify;text-justify:inner-word">',
'<b>Type:</b> {type}<br/>',
'<tpl if="survey">',
<b>Survey:</b> {survey}<br/>',
'</tpl>',
'<b>Comments:</b> {comments}',
'</div>'
我也尝试过这些,但没有成功:
<tpl if="survey != {}">
<tpl if="survey != undefined">
怎么可能是检测不存在的物体的正确方法?,提前谢谢。
PS。我正在使用ExtJS 3.4
答案 0 :(得分:2)
使用values
局部变量,例如:
var tpl = new Ext.XTemplate(
'<div style="text-align:justify;text-justify:inner-word">',
'<b>Type:</b> {type}<br/>',
'<tpl if="values.survey">',
'<b>Survey:</b> {values.survey}<br/>',
'</tpl>',
'<b>Comments:</b> {values.comments}',
'</div>'
);
除values
外,还有其他可用变量,在某些情况下有用:parent
,xindex
,xcount
。
预处理后的模板作为函数执行,模板如下所示:
function (values, parent, xindex, xcount){ // here are values, parent, etc
with(values){ // each property of values will be visible as local variable
return [
'<div style="text-align:justify;text-justify:inner-word"><b>Type:</b> ',
(values['type'] === undefined ? '' : values['type']),
'<br/>',
this.applySubTemplate(0, values, parent, xindex, xcount), // each <tpl> is converted into subtemplate
'<b>Comments:</b> ',
(values.comments === undefined ? '' : values.comments),
''
].join('');
}
}
这些知识通常有助于理解XTemplates。
上述变量的示例用法:http://jsfiddle.net/gSHhA/
答案 1 :(得分:0)
我使用<tpl if="!!survey>"