Я хочу загрузить элемент/элементы из ViewController. Вот пример:Exj JS 5, магазин/модель доступа от ViewController
Ext.define('MyApp.model.User', {
extend: 'Ext.data.Model',
fields: ['name', 'email'],
proxy: {
type: 'rest',
...
}
});
Ext.define('MyApp.store.User', {
extend: 'Ext.data.Store',
model: 'MyApp.model.User',
data : [
{firstName: 'Seth', age: '34'},
{firstName: 'Scott', age: '72'},
{firstName: 'Gary', age: '19'},
{firstName: 'Capybara', age: '208'}
]
});
Ext.define('MyApp.view.MainController', {
extend: 'Ext.app.ViewController',
alias: 'controller.main',
init: function() {
//how to access store here and load items, using its load() method?
//how to access model here and load an item, using its load() method?
}
});
- Как получить доступ магазин здесь и элементы нагрузки, используя метод его нагрузки()?
- Как получить доступ к модели и загрузить элемент с помощью метода загрузки?
Обратите внимание, что все, что вы сделали, определяет тип магазина. Чтобы использовать его, вам нужно создать экземпляр, который вы могли бы сделать внутри метода 'init'. –
@Evan Trimboli, Ext JS создает сам магазин, когда он используется через контроллер приложения. Вы просто добавляете массив магазинов, и вы можете использовать this.getSomeStoreNameStore() из контроллера. Вы не создаете его вручную. Почему я должен создавать хранилище вручную, когда он используется внутри контроллера представления? Я думаю, что есть способ, которого я не знаю. – Alexandr
Потому что это контроллер вида, что означает, что он находится на основе представления (у вас может быть много экземпляров). Контроллер приложения является одноразовым, который создает отдельный экземпляр хранилища определенного типа, который используется во всем приложении. Возможно, вы захотите посмотреть конфигурацию 'stores' модели представления. Если вы не используете модель представления, вам нужно создать экземпляр. –