2013-06-21 2 views
1

Я пытаюсь применить патч с использованием переопределений, но получаю «Uncaught TypeError: Не могу прочитать свойство« Таблица »неопределенного», потому что файл Ext.view.Table не закончил загрузку к моменту вызова сценария. Как я могу убедиться, что требуемые файлы загружаются до того, как это вызвано?Extjs overrides - загрузка обязательного файла перед переопределением

Ext.define('CSnet.overrides.Table', { 
    override: 'Ext.view.Table', 
    getRowStyleTableElOriginal: Ext.view.Table.prototype.getRowStyleTableEl, 
    getRowStyleTableEl: function() { 
    var el = this.getRowStyleTableElOriginal.apply(this, arguments); 

    if (!el) { 
     el = { 
     addCls: Ext.emptyFn, 
     removeCls: Ext.emptyFn, 
     tagName: {} 
     } 
    } 

    return el; 
    } 
}); 

ответ

1

Вы можете определить класс, который обрабатывает все ваши переопределения, например.

Ext.define('YourApp.Overrider',{ 
    requires: ['TargetClass'], 
    doOverride: function() { 
     Ext.define('CSnet.overrides.Table', { 
     override: 'Ext.view.Table', 
     // snip 
     }); 
    } 
}); 

Вы можете требует этого класса в вашем app.js и вызвать doOverride в app.launch(), после загрузки рамки. Кроме того, вам может потребоваться определенный TargetClass, который вы хотите переопределить в require-config Overrider.

+0

Спасибо, но я ищу более «Ext» способ сделать это (используя конфигурацию переопределения). – Brett

+0

Я думаю, что сейчас это довольно «Exty». – Christoph

Смежные вопросы