在ViewController中获取存储
Get store in a ViewController
是否可以从ViewController
中检索存储?我试图用商店中的按钮动态填充工具栏,但我不知道如何从控制器访问商店。如有任何提示,不胜感激。我的Extjs版本是5.1。
视图:
Ext.define('EurocampingsCMS.view.Foo', {
extend: 'Ext.toolbar.Toolbar',
alias: 'widget.foo',
requires: [
'EurocampingsCMS.controller.Foo'
],
controller: 'foo',
});
视图控制器:
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')
});
});
}
});
最好是充分利用MVVM体系结构,并在视图模型stores
对象中定义存储。那么就很容易了:
onBeforeRender: function (toolbar, eOpts) {
var store = this.getViewModel().getStore('yourstorekey');
}
注意:只有当存储的生存期与视图的生存期相同时,这才有可能。如果你需要访问一个使用寿命更长的全局商店,那么给它分配一个storeId并使用获取它
var store = Ext.getStore('theStoreId');
Ext.getStore('storeIdHere')是实现的一种方法
相关文章:
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 如何获取PHP变量数据并将其存储在JavaScript变量中
- 通过Azure存储以HTML形式获取JSON文件
- for 循环和 if 语句,获取变量并存储它
- 通过CK编辑器获取值和存储数据
- Fin上传器直接上传到Azure Blob存储-在Javascript中获取文件uri
- ExtJS 4.2如何获取视图的所有存储
- jQuery 设置和获取下拉列表和输入的本地存储数据
- 没有从本地存储获取与保存的变量相同的类型
- 谷歌浏览器同步存储“获取”命令运行什么顺序
- 使用 javascript 从本地存储获取项目
- 如何按类名和存储获取页面中的所有链接
- 如何将数据从谷歌应用引擎数据存储获取到客户端的角度js中
- 如何在文本框中设置值,从 Html5 中的本地存储获取
- 客户端存储/获取信息的最佳方式
- 覆盖主干's从本地存储获取数据的URL函数
- 从本地存储获取复选框状态
- 数据存储获取范围内的最后一个键
- 无法使用jquery从本地存储获取数据的当前id
- Ember数据首先从存储获取记录,而不是使用param从API获取记录