2015-04-25 3 views
1

Как мне получить доступ и установить хранилище, определенное внутри viewmodel? Я смог установить магазин, созданный за пределами viewmodel. Но я хочу сохранить хранилище внутри viewmodel и установить этот магазин для просмотра сетки.Aceess extjs viewmodel store in view

Посмотреть

Ext.define('MyApp.view.sample.Sample', { 
extend: 'Ext.panel.Panel', 

requires: [ 
    'MyApp.view.sample.SampleController', 
    'MyApp.view.sample.SampleModel' 
], 

xtype: 'app-sample', 
controller: 'sample', 

viewModel: { 
    type: 'sample' 
}, 
items: [{ 
    xype: 'container', 
     items: [ 
      { 
       xtype: 'grid', 
       store: 'sample', //This doesn't work. Store undefined error is thrown 
       columns: [ 
        { 
         text: 'Name', 
         dataIndex: 'name' 
        } 
       ] 
      } 
     ] 
    } 
] 

});

ViewModel

Ext.define('MyApp.view.sample.SampleModel', { 
extend: 'Ext.app.ViewModel', 
alias: 'viewmodel.sample', 
stores: { 
    sample: { 
     // storeId: 'sample', //doesn't work even if I uncomment this 
    fields: [ 'name' ], 
     data: [ 
      { name: 'Lisa' }, 
      { name: 'Bart' }, 
      { name: 'Homer',} 
     ] 
    } 
} 
}); 

ответ

2

Вы должны связать свой магазин (который вы должны сделать для всех свойств, взятых из ViewModel) и использовать правильные «привязки» нотации http://www.sencha.com/forum/showthread.php?284474-ViewModel-stores-help

xtype: 'grid', 
bind: { 
    store: '{sample}' // curly braces if referencing from ViewModel 
}, 
columns: [ 
... 
] 

Вы используя ExtJS 5, правильно? Я только упоминаю, что, поскольку один из тэгов для «extjs4» и ViewModels не был введен до ExtJS 5.

+0

Да, я использую ExtJS 5. Спасибо – user43286