1

私は次のような方法を持っています:

createTip : function() {
    var eventTip = new Ext.XTemplate(
        '<tpl if="EventType == \'ONE\'">', 
        '<p> This is event one </p>',
        '</tpl>',
        '<tpl if="EventType == \'Two\'">', 
          return null;
        '</tpl>' 
    );

    return eventTip;

}

私がやりたいことは、EventType が「TWO」の場合、メソッドが null を返すようにすることです。これは可能ですか?

上記のコードのようなものです。私はこれが不可能であることを知っていますが、とにかくそうすることはありますか. EventType が 2 の場合、xtemplate を作成したくありません。

ありがとう

4

2 に答える 2

0
applyDataToMyTemplate: function(data){
  if (data.EventType === 'Two'){
    return null; //or '', or false, or whatever you need
  } else {
     return this.createTip().apply(data); //or some such hackery
   }

}
于 2012-06-29T16:41:33.570 に答える
0

本当に null を返す必要がある場合は、XTemplate 以外のものが必要なようです。テンプレートでそれを行うためのユースケースを認識していません.xtemplateが想定されているhtmlフラグメント以外のものを返すと、ほとんどのウィジェットが壊れるはずです。EventType が Two のときに何も表示しないようにする必要がある場合は、テンプレート関数を使用して、生成された HTML を調整するか、文字列を作成することで、必要なことをほとんど行うことができます。これを行うと、XTemplate が提供するはずの部分的な dom 要素を事前に作成して再利用する利点が失われます。

new Ext.XTemplate(
    '{[this.buildTemplate(values)]}',
    {
        buildTemplate: function (values) {
            if (values.EventType === "One") {
                return "<p> This is event one </p>";
            } else {
                return '';
            }
        }
    }
)
于 2013-01-04T22:16:48.507 に答える