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 是两个,我不希望创建 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 或通过构建字符串来执行您想做的任何其他事情。这样做会放弃提前创建部分 dom 元素以供重用的好处,但 XTemplate 应该提供:

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 回答