я попытался создать базовый контроллер и написать в нем:ExtJS 4.1 Контроллер наследования с сгенерированных добытчиками для магазинов и моделей
Ext.define('My.Users.controller.Role', {
extend : 'Ext.app.Controller',
stores : [
'Modules', 'ModulesList'
],
models : [
'Modules', 'ModulesList'
]
});
Но когда я попытался использовать добытчиками для них (в этом базовом классе, или в его дочерние классы, такие как My.Users.controller.Group), например getModulesStore() или getModulesListModel(), у меня есть ошибка, что они не являются функциями. И в Firebug я вижу, что в этом классе нет таких методов и в суперклассе. Как я могу это исправить?
Полное описание, как воспроизвести эту ошибку: 1) Скачать ExtJS 4.1 GPL от Сенча
2) Распакуйте архив и перейдите в каталог ExtJS-4.1.0/примеры/приложение/загрузочном просмотра/
3) В файле feed-viewer.html строка комментариев <script type="text/javascript" src="all-classes.js"></script>
для принудительной динамической загрузки js-файлов: теперь вы можете обычно редактировать содержимое файлов проекта.
4) В приложении папке/контроллер создать файл с именем Entities.js с помощью следующего кода:
Ext.define('FV.controller.Entities', {
extend: 'Ext.app.Controller',
models: ['Shared'],
stores: ['Shared']
});
5) В файлах Articles.js и Feeds.js изменяются распространяется на 'FV.controller.Entities'
6) В папках приложения/модели и приложение/магазин создавать файлы Shared.js с содержанием
Ext.define('FV.model.Shared', {
extend: 'Ext.data.Model',
idProperty: 'id',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'title',
type: 'string'
}
]
});
для модели и
Ext.define('FV.store.Shared', {
extend: 'Ext.data.Store',
model: 'FV.model.Shared',
proxy: {
type: 'ajax',
url: 'test.json',
reader: {
type: 'json',
root: 'item'
}
}
});
для магазина.
7) Наконец, например, в методе init метода Article.js попробуйте console.log (this); В Firebug вы не получите методы getSharedModel() и getSharedStore().
Я загрузил свой образец в http://nekaka.com/d/W1_EOlnPST
Ваш код выглядит правильно для меня, так что может быть несоответствие в имя/идентификатор магазина и модели, которую вы пытаетесь использовать. – JohnnyHK