覆盖Ext.data.存储,调用构造函数

Override Ext.data.Store, call constructor

本文关键字:调用 构造函数 存储 Ext data 覆盖      更新时间:2023-09-26

我想重写Ext.data.Store,这样所有的store都有自定义的异常处理。

所以我写:

Ext.define("Override.data.Store", {
    override:'Ext.data.Store',
    constructor:function() {
        this.callParent(arguments);
        if(this.getProxy() && this.getProxy().getReader())
        this.getProxy().getReader().on('exception',function(reader,response,error) {
            if(!isLoggedIn(response)) window.location.reload();
            else Ext.Msg.alert("Error reading data.",error);
        });
    }
});

我认为我将不得不使用其他一些hokey-pokey函数来代替this.callParent(arguments);,因为我不想要Store超类的构造函数,而是原始Store的构造函数。有人知道如何从被覆盖的类中获取函数吗?

第二,要使它工作,我必须将覆盖定义放入哪个目录?原来的Store在ext/data/Store.js,我确实把我的文件放在app/override/data/Store.js,但它不起作用

试试callSuper,它应该会做你想做的。