4

我正在使用 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');
        }
    });
}
4

1 回答 1

3

您需要指定

scope: this

在 invoice.save() 方法上,以便回调在控制器范围内运行。

于 2012-11-28T04:57:43.173 回答