Ext.define('Myapp.view.itemsBagPanel', {
extend : 'Ext.panel.Panel',
...
validatorFn:function(item,source,target,isSpecial) {
return false;
},
createValidatorFn:function(item,source) {
return this.validatorFn(item,source,source,false);
},
moveValidatorFn: function(item, source, target) {
return this.validatorFn(item,source,target,true);
}
这是我视图的原始框架,现在我需要知道如何从createValidatorFn访问validatorFn。 “这个”似乎不起作用。
答案 0 :(得分:1)
您可以这样做:
Ext.define('Myapp.view.itemsBagPanel', {
extend : 'Ext.panel.Panel',
...
initComponent : function() {
itemsBagPanel = this; //Declaration
this.items=[{....}];
this.callParent();
}
validatorFn:function(item,source,target,isSpecial) {
return false;
},
createValidatorFn:function(item,source) {
itemsBagPanel.validatorFn(); // You can access other functions
return this.validatorFn(item,source,source,false);
},
moveValidatorFn: function(item, source, target) {
return this.validatorFn(item,source,target,true);
}
答案 1 :(得分:0)
另一种方式是使用:
Ext.define('Myapp.view.itemsBagPanel', {
extend : 'Ext.panel.Panel',
initComponent : function() {
var me = this;
Ext.apply(me,{
createValidatorFn:function(item,source) {
return me.validatorFn(item,source,source,false);
},
moveValidatorFn: function(item, source, target) {
return me.validatorFn(item,source,target,true);
}
});
},
validatorFn:function(item,source,target,isSpecial) {
return false;
}
请注意,您必须在validatorFn
之外定义initComponent
(或使用对apply
的两次调用),因为me.validatorFn
必须在createValidatorFn
之前定义}和moveValidatorFn
可以使用它们。