this.up() 不是函数 EXTJS
this.up() is not function EXTJS
我想将我的数据从控制器提交到服务器。
代码如下:
renterForms: function() {
var items3 = [{
xtype:'foresto-renterdata',
scrollable: true,
scope: this,
renderTo: 'mainPart',
handler: function() {
this.action3.hide();
}
},{
text: 'Submit',
ui: 'confirm',
scope: this,
handler: function() {
var form = this.up('foresto-rentertype');
if (form.isValid()) {
form.submit({
success: function(form, action) {
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result.msg);
}
});
} else { /
Ext.Msg.alert('Error', 'Please correct form errors.')
}
}
在 chrome 调试器中,我看到下一个错误:
Uncaught TypeError: this.up is not a function.
怎么了?这是获取和提交数据的好方法吗?
P.S。 url for POST 请求在表单代码中定义
scope: this
这是扰乱处理程序函数内部范围的实际问题。删除它,它会解决向上功能。
您可以通过以下示例查看作用域的行为 fiddle:
https://fiddle.sencha.com/#view/editor&fiddle/2nhv
当定义了 "scope: this" 时,将使用构建组件时的作用域并将其注入到处理函数中。它等效于显式编写 handlerFn.bind(this) ,它只是绑定不同的范围和 returns 一个新函数。
我想将我的数据从控制器提交到服务器。 代码如下:
renterForms: function() {
var items3 = [{
xtype:'foresto-renterdata',
scrollable: true,
scope: this,
renderTo: 'mainPart',
handler: function() {
this.action3.hide();
}
},{
text: 'Submit',
ui: 'confirm',
scope: this,
handler: function() {
var form = this.up('foresto-rentertype');
if (form.isValid()) {
form.submit({
success: function(form, action) {
Ext.Msg.alert('Success', action.result.msg);
},
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result.msg);
}
});
} else { /
Ext.Msg.alert('Error', 'Please correct form errors.')
}
}
在 chrome 调试器中,我看到下一个错误:
Uncaught TypeError: this.up is not a function.
怎么了?这是获取和提交数据的好方法吗?
P.S。 url for POST 请求在表单代码中定义
scope: this
这是扰乱处理程序函数内部范围的实际问题。删除它,它会解决向上功能。
您可以通过以下示例查看作用域的行为 fiddle: https://fiddle.sencha.com/#view/editor&fiddle/2nhv
当定义了 "scope: this" 时,将使用构建组件时的作用域并将其注入到处理函数中。它等效于显式编写 handlerFn.bind(this) ,它只是绑定不同的范围和 returns 一个新函数。