1

我真的不明白为什么 model 绑定到proxy而不是 to store,所以如果我需要商店的模型,我必须做这样的事情:

var m = store.getProxy().getModel();

Ext.data.AbstractStore 是否有任何理由没有 getModel() 方法?

4

1 回答 1

1

你这样做是不对的; Store 不会使用代理的模型,但如果您没有为商店定义自己的代理,它将使用模型的代理。然后您可以访问model商店的属性。

如果这对您来说还不清楚,请给我评论,我将通过示例对其进行更深入的描述。

更新

到目前为止,我仔细查看了,我无法真正告诉您为什么缺少 getter,但是model存储和代理上都有一个公共属性,该属性至少应包含创建实例时的模型名称。到目前为止,您只能从商店中获取模型名称,因此您需要首先通过调用类似这样的方法来解析模型构造函数

Ext.ModelMgr.getModel(store.model);

一些附加信息 再仔细看一下源码还是比较混乱的,我要测试一下,但是好像有一些不一致的地方。

简而言之

->代理需要模型->商店可以采用分配模型的代理->商店(似乎)总是设置代理的模型->代理(设置模型时)可以设置代理的模型店铺

我认为他们正在为即将发布的 4.2 版本准备一些东西,这样人们就不会在他们的商店模型未定义时感到困惑,即使他们有一个分配给代理(例如)

于 2013-02-22T08:39:31.563 回答