Bra*_*sen 1 javascript extjs viewcontroller
是否有可能从一个ViewController?我正在尝试使用商店中的按钮动态填充工具栏,但我不确定如何从控制器访问商店.任何提示赞赏.我的Extjs版本是5.1.
视图:
Ext.define('EurocampingsCMS.view.Foo', {
extend: 'Ext.toolbar.Toolbar',
alias: 'widget.foo',
requires: [
'EurocampingsCMS.controller.Foo'
],
controller: 'foo',
});
Run Code Online (Sandbox Code Playgroud)
视图控制器:
Ext.define('MyApp.controller.Foo', {
extend: 'Ext.app.ViewController',
alias: 'controller.foo',
control: {
'#': {
beforerender: 'onBeforeRender'
}
},
onBeforeRender: function (toolbar, eOpts) {
//How to get store here??
store.each(function (record) {
toolbar.add({
xtype: 'button',
itemId: record.get('localeId'),
text: record.get('label')
});
});
}
});
Run Code Online (Sandbox Code Playgroud)
最好的方法是充分利用MVVM架构并在viewmodel stores对象中定义存储.然后很容易:
onBeforeRender: function (toolbar, eOpts) {
var store = this.getViewModel().getStore('yourstorekey');
}
Run Code Online (Sandbox Code Playgroud)
注意:仅当商店的生命周期与视图的生命周期相同时,才可以执行此操作.如果您需要访问具有更长生命周期的全局存储,则为其分配storeId并获取它:
var store = Ext.getStore('theStoreId');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4497 次 |
| 最近记录: |