我正在使用grails 2.1.0和extjs 4.1.0。现在我在成功方法面临一些问题。问题出现在下面的代码注释中。任何人都可以帮助我:
onupdateOrder : function(invoiceid, payMethod, rebatevalue){
if(invoiceid > 0){
Ext.Msg.confirm('Update Product', 'Are you sure?', function (button) {
if (button == 'yes') {
var invoice = Ext.create('Ext4Example.model.Invoice',{
id : invoiceid,
rebate : rebatevalue,
paymethod : payMethod
});
invoice.save({
success: function(model) {
var inId = model.getId();
this.updateOrder(invoiceid); //warning:this.updateOrder is not a function
},
failure: function(){
console.log('Unable to save/update');
}
});
}
}, this);
}else{
Ext.Msg.alert("Please Give Invoice Id");
}
},
updateOrder :function(invoiceid){
var order = Ext.create('Ext4Example.model.Order',{
id : invoiceid
});
order.save({
success: function(order) {
console.log(invoiceid);
Ext.getCmp('InvoiceNo').setValue(invoiceid);
Ext.getCmp('itemform2').restoreItem();
},
failure: function(){
console.log('Unable to update');
}
});
}
答案 0 :(得分:3)
您需要指定
scope: this
在invoice.save()方法上,以便回调在控制器范围内运行。