我有一个方法如下:
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。
由于
答案 0 :(得分: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
}
}
答案 1 :(得分: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 '';
}
}
}
)