我正在尝试这样做:
...
store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
...
但是得到:
...
store: 'ZAdmin.store.TreeFactory.create(\'ZAdmin.model.Category\', \'Application\\Entity\\Category\')'
...
无法将存储从字符串更改为对象类型。
如何解决?
P.S。我是在GUI中编辑配置属性。 Sencha Architect假设store是一个字符串,因此自动转义任何值。
答案 0 :(得分:0)
存储配置采用商店对象或其名称,因此如果您想要传递对象,您可以在原地创建它,或者在初始化方法中,您可以这样做:
var myStore = ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category'); // Any kind of store creation
this.setStore(myStore);
myStore.load(); // Optional
具有延迟存储关联/加载功能,您可以快速显示视图,而无需等待数据加载。
答案 1 :(得分:0)
如果您希望在定义中保持初始化,那么最好的办法是为对象创建覆盖类。即在代码编辑窗口的顶部按“创建覆盖”按钮,然后在配置下输入您自己的初始化代码。例如。如果你想以这种方式设置数据视图对象的存储,那么使用如下代码创建数据视图的覆盖:
Ext.define('MyApp.view.MyDataView', {
extend: 'Ext.dataview.DataView',
config: {
store: ZAdmin.store.TreeFactory.create('ZAdmin.model.Category', 'Application\\Entity\\Category')
}
});
为了能够以这种方式覆盖您的控件,您需要先将其提升为类(右键单击控件 - > gt;提升为类 - >为新创建的类创建覆盖)。