0

我的 JSON 大部分时间都在其结构中包含这两个:“类型”和“评论”。有时它有“类型”、“调查”、“评论”。所以,我想使用“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

4

2 回答 2

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/

于 2012-12-29T14:20:02.817 回答
0

我用<tpl if="!!survey>"

于 2015-04-22T17:49:34.223 回答