我真的不明白为什么 model 绑定到proxy
而不是 to store
,所以如果我需要商店的模型,我必须做这样的事情:
var m = store.getProxy().getModel();
Ext.data.AbstractStore 是否有任何理由没有 getModel() 方法?
你这样做是不对的; Store 不会使用代理的模型,但如果您没有为商店定义自己的代理,它将使用模型的代理。然后您可以访问model
商店的属性。
如果这对您来说还不清楚,请给我评论,我将通过示例对其进行更深入的描述。
更新
到目前为止,我仔细查看了,我无法真正告诉您为什么缺少 getter,但是model
存储和代理上都有一个公共属性,该属性至少应包含创建实例时的模型名称。到目前为止,您只能从商店中获取模型名称,因此您需要首先通过调用类似这样的方法来解析模型构造函数
Ext.ModelMgr.getModel(store.model);
一些附加信息 再仔细看一下源码还是比较混乱的,我要测试一下,但是好像有一些不一致的地方。
简而言之
->代理需要模型->商店可以采用分配模型的代理->商店(似乎)总是设置代理的模型->代理(设置模型时)可以设置代理的模型店铺
我认为他们正在为即将发布的 4.2 版本准备一些东西,这样人们就不会在他们的商店模型未定义时感到困惑,即使他们有一个分配给代理(例如)