2

我正在尝试这样做:

...
store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
...

但是得到:

...    
store: 'ZAdmin.store.TreeFactory.create(\'ZAdmin.model.Category\', \'Application\\Entity\\Category\')'
...

无法将存储从字符串更改为对象类型。

如何解决?

PS 我要在 GUI 中编辑配置属性。Sencha Architect 假设 store 是一个字符串,所以自动转义任何值。

4

2 回答 2

0

store config 采用 store 对象或其名称,因此如果您想传递一个对象,您可以就地创建它或在初始化方法中创建它,您可以这样做:

var myStore = ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category'); // Any kind of store creation
this.setStore(myStore);
myStore.load();   // Optional

延迟存储关联/加载使您能够快速显示视图而无需等待数据加载。

于 2013-01-28T10:33:04.630 回答
0

如果您热衷于在定义中保留初始化,那么最好为您的对象创建一个覆盖类。即在代码编辑窗口的顶部按下“创建覆盖”按钮,然后在配置下输入您自己的初始化代码。例如,如果您想以这种方式设置数据视图对象的存储,则使用如下代码为数据视图创建覆盖:

Ext.define('MyApp.view.MyDataView', {
extend: 'Ext.dataview.DataView',

config: {
    store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
}
});

为了能够以这种方式覆盖您的控件,您需要先将其提升为类(右键单击控件 -> 提升为类 -> 为新创建的类创建覆盖)。

于 2013-01-28T17:51:37.963 回答