我想稍微修改默认的树面板渲染器。所以在第一步中,我尝试只调用默认的树面板渲染器。不幸的是,这不起作用。
这是我的代码:
Ext.define('FMSGui.view.FMSFeatureTypeTreePanelColumn',
{
extend: 'Ext.tree.Column',
dataIndex: 'name',
flex:1,
renderer: function(v1)
{
return this.callParent(v1);
}
}
);
TreePanel的代码如下所示:
Ext.define('FMSGui.view.FMSFeatureTypeTreePanel', {
extend: 'Ext.tree.Panel',
title: 'Feature Types',
width: 200,
height: 150,
store: null,
displayColumn:null,
constructor: function(config)
{
this.displayColumn=Ext.create("FMSGui.view.FMSFeatureTypeTreePanelColumn");
this.columns=[this.displayColumn];
this.store=Ext.create("FMSGui.store.FMSFeatureTypeTreeStore");
this.store.load();
this.superclass.constructor.call(this,config);
},
rootVisible: true,
lines: true,
useArrows: true
});
我总是收到错误消息:
XTemplate评估异常:this.callParent不是函数
顺便说一下,如果我删除了渲染器部分。
知道这里出了什么问题吗? 感谢您的任何评论。
答案 0 :(得分:0)
这是一个范围问题。在renderer
中,this
不会引用FMSGui.view.FMSFeatureTypeTreePanelColumn
(实际引用窗口),因此没有callParent
属性。
尝试阅读这些文章:Closures,this keyword
如果您使用return this.callParent(v1);
描述您想要实现的目标,请尝试使用某些代码/小提琴来帮助您。