如何创建向Controller注册的Model的新实例?

时间:2013-12-01 04:28:05

标签: extjs model controller extjs4 extjs4.2

在Controller中创建关联模型的新实例的惯用方法是什么?

动机:

如果我更改了我Class的{​​{1}},则以下代码无法更新,我必须找到所有损坏并手动修复。

如果我可以在控制器中使用该关联,它会自动更新,但我找不到任何关于神奇咒语的文档来从控制器引用创建一个新实例。

以下是我的控制器的相关部分:

Model

我想知道的是什么:

我在documentation

中找到了这个
  

重要的是要注意视图和模型的getter   返回对类的引用(要求您实例化自己的类)   实例),而商店和控制器的getter返回实际   实例

我找不到实例化实例的代码的示例。

1 个答案:

答案 0 :(得分:2)

经过多次试验和错误,只是接受过普通教育的猜测...

我想出了语法应该是什么。

首先,您需要创建对class的{​​{1}}的引用。

按照惯例,这是前缀为Model且后缀为get的模型的名称。

Model

我必须在访问每个项目的var fmc = this.getFileModel(); 函数之外执行此操作,因为Ext.each()引用指向HTML5 this对象而不是File

然后,您只需使用常规Controller即可获得新的实例。

Ext.create(fmc, { /* config */ }

因此问题中var fm = Ext.create(fmc, { name: f.name, size: f.size, type: f.type, md5: '', status: 0 }); 函数的正确版本应如下所示:

onFilefieldChange