jrh*_*ath 15 javascript proxy model store extjs4
我一直在努力学习使用模特和商店.但代理位让我很困惑.所以我将在这里列出我的理解 - 请指出我理解中的差距.
dirty会设置其标志.保存模型时会自动清除它.(稍后会详细介绍)proxy配置和save方法?我知道模型只能存储在商店中.dirty在将模型对象添加到商店时不会清除标志?proxy是模型的静态配置.这是否意味着我们不能将特定模型的对象与多个数据源一起使用?通过扩展,这是否意味着单个模型的多个商店基本上没用?store: 'MyApp.store.MyStore'- 网格是否实例化了该类型的网格,或者它只是使用我们已经实例化的商店?谢谢!
PS:解释所有这一切的人获得+50赏金:) - 将在48小时结束后提供赏金..
Mol*_*Man 19
文档说:
Model表示应用程序管理的某个对象.
Store只是Model实例的集合 - 通常从某个服务器加载.
模型保存在商店中
不只.模型可以单独使用(fi用于使用数据填充表单.有关更多信息,请查看Ext.form.Panel.loadRecord).
为什么Model上有代理配置和保存方法?我知道模型只能存储在商店中.
正如我所说,不仅如此.
为什么在将模型对象添加到商店时不会清除脏标志?
为什么要这样?仅当记录与服务器端的相应记录同步时,记录才变为干净.
当我将模型对象添加到商店时,为什么模型不会获取使用该商店配置的代理?
这也是因为模型可以在没有商店的情况下使用.
proxy是Model的静态配置.这是否意味着我们不能将特定模型的对象与多个数据源一起使用?
我们不能使用特定模型的对象,但我们可以为多个商店使用一个模型定义.例如:
Ext.define('MyModel', {
// ... config
});
var store1 = Ext.create('Ext.data.Store', {
model: 'MyModel',
// ... config
proxy: {
// ...
// this proxy will be used when store1.sync() and store1.load() are called
}
// ...
});
// ...
var storeN = Ext.create('Ext.data.Store', {
model: 'MyModel',
// ... config
proxy: {
// ...
// this proxy will be used when storeN.sync() and storeN.load() are called
}
// ...
});
Run Code Online (Sandbox Code Playgroud)
由于store1和storeN使用不同的代理,因此这些商店包含的记录可能完全不同.
当我们定义一个商店时,我们是定义一个类(商店类型,如果我们可以称之为),还是商店的实例?
是的,当我们定义商店时,我们正在定义一个类.
我问的原因是当我们声明一个网格时,我们只是将它作为商店传递给商店:'MyApp.store.MyStore' - 网格是否实例化了该类型的网格,或者它只是使用我们已经实例化的商店?
有几种方法可以为网格设置商店配置:
store: existingStore,store: 'someStoresId',store: 'MyApp.store.MyStore',在第一种和第二种情况下,将使用现有的商店实例.在第三种情况下,'MyApp.store.MyStore'将使用新创建的实例.所以,store: 'MyApp.store.MyStore',等于
var myStore = Ext.create('MyApp.store.MyStore', {});
// ...
// the following - is in a grid's config:
store: myStore,
Run Code Online (Sandbox Code Playgroud)
UPDATE
当模型被添加到存储然后调用商店的sync()时,为什么不清除模型的脏标志?
它应该被清除,除非没有正确设置读取器,写入器和服务器响应.查看作者示例.在商店的sync()上自动清除脏标志.
如果模型类根本没有给出任何代理,为什么它会跟踪它的脏状态?
告诉您自创建时刻以来记录是否已更改.
通过引入将自身同步到服务器的模型的概念来实现什么?
假设您正在创建一个包含普通输入集的小部件.可以从db加载此输入的值(这组输入表示db表中的一行).当用户更改输入值时,应将数据发送到服务器.该数据可以存储在一个记录中.
那么你会对这个界面使用什么:一条记录或只有一条记录的商店?
独立模型 - 用于表示db表中一行的小部件.
存储 - 用于表示db表中的行集的小部件.
| 归档时间: |
|
| 查看次数: |
10120 次 |
| 最近记录: |