我正在尝试针对数据视图内部的组合框值进行测试&#t; tpl:
Ext.define('MyForm', {
extend: 'Ext.form.Panel',
items: [
{
xtype: 'combo',
name: 'my_combo',
},
{
xtype: 'dataview',
tpl: new Ext.XTemplate(
'<tpl for=".">',
'<tpl if="this.test()">pass</tpl>',
'</tpl>'
,
{
test: function(){
//doesn't work
return this.getView().down('[name=my_combo]').getValue() == 'ok';
}
}),
}
]
});
这不起作用,因为this
引用了模板本身,我无法弄清楚如何从内部访问视图。
答案 0 :(得分:1)
无法访问XTemplate中的视图。要实现这一点,您可以使用ViewModel,这里是它的代码。
工作的sencha小提琴https://fiddle.sencha.com/#fiddle/175s
更新:我更新了代码以使用DataView,DataView有点棘手,我覆盖了prepareData方法以将额外信息传递给模板,并且每当组合值更改时也更新DataView 。以下是更新后的更改https://fiddle.sencha.com/#fiddle/175s
use ships;
select CLASSES.CLASS, COUNT(CASE WHEN RESULT = 'sunk' THEN 1 ELSE NULL END)
from CLASSES
left join SHIPS on CLASSES.CLASS = SHIPS.CLASS
left join OUTCOMES on NAME = SHIP
group by CLASSES.CLASS;