我收集了类似的对象,应该以相同的方式处理它们。
对象示例:
Foo (id, title, size)
Bar (id, name, count, ...)
...
通常情况下,我应该为每个文件创建 3 个文件并在 MyApp.Application 存储和 View 中注册。我想避免创建多个类似的文件。但我找不到可以生成它的点。另外,我想通过通常的方式使用这个生成的商店/模型(例如在组合框中通过“store:'Foos'”等引用)。
MyApp.model.Foo (app/model/foo.js)
Ext.define('MyApp.model.Foo', {
extend: 'Ext.data.Model',
fields: [ 'title', 'size' ],
proxy: { ... }
});
MyApp.store.Foos (app/store/foos.js)
Ext.define('MyApp.store.Foos', {
extend: 'Ext.data.Store',
autoLoad: true, autoSync: true,
model: 'MyApp.model.Foo',
});
MyApp.view.Foos (app/view/foos.js)
Ext.define('MyApp.view.Foos', {
// customized grid which pulls fields list from attached model
extend: 'MyApp.control.GenericGrid',
alias: 'widget.foogrid',
store: 'SendMethods',
i18nNamespace: 'generic.foos', // prefix for i18n key for fields titles
});
我试图从 MyApp.Application 中获取一些源文件,并将模型和存储定义放入该文件中。它适用于构建版本。但在开发过程中却失败了。现在它只是在加载时卡住。
MyApp.Application (app/Application.js)
Ext.define('MyApp.Application', {
name: 'MyApp',
extend: 'Ext.app.Application',
requires: [ 'MyApp.factory.GenericModel' ],
stores: [
'Foos'
]
...
});
MyApp.factory.GenericModel (app/factory/GenericModel.js)
Ext.define('MyApp.factory.GenericModel', {});
Ext.define('MyApp.model.Foo', {
...
});
Ext.define('MyApp.store.Foos', {
...
});
定义多个 Ext 类而不为每个类创建文件的正确方法是什么?
最佳答案
你可以这样实现:
第 1 步:创建一个包含所有必需的类定义的文件,如下所示:
Ext.define('MyApp.Classes',{
}, function(){
Ext.define('MyApp.Class1',{});
Ext.define('MyApp.Class2',{});
Ext.define('MyApp.Class3',{});
Ext.define('MyApp.Class4',{});
Ext.define('MyApp.Class5',{});
});
在此示例中,Classes
不执行任何操作(它只是一个名称),Class[1-5]
是您实际想要在一个文件中定义的类。
第 2 步:在应用程序或 Controller 中需要 MyApp.Classes
。
关于javascript - ExtJS 4.2 动态生成多个相似数据源的Model+Store+View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24329393/