0

私の JSON には、ほとんどの場合、「タイプ」と「コメント」という 2 つの構造が含まれています。代わりに「タイプ」、「調査」、「コメント」がある場合もあります。そこで、「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、場合によっては役立つ他の変数も使用できます: parentxindexxcount

前処理後のテンプレートが関数として実行されると、テンプレートは次のようになります。

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('');
    }
}

この知識は通常、XTemplate を理解するのに役立ちます。

上記の変数の使用例: http://jsfiddle.net/gSHhA/

于 2012-12-29T14:20:02.817 に答える
0

私が使う<tpl if="!!survey>"

于 2015-04-22T17:49:34.223 に答える