fas*_*ava 4 javascript ajax extjs
我有代码ExtJs 4:
var proxy = Ext.create('Ext.data.Proxy', {
type : 'ajax',
url : 'some url',
reader : {
type : 'json'
}
});
myStore.setProxy(proxy);
myStore.load({ // this never loads, no error in console either
scope : this,
params : {
},
callback: function() {
}
});
Run Code Online (Sandbox Code Playgroud)
您的问题是您试图type
在创建超类的具体实例时定义一个。type
在类之类的配置中定义代理时,它是有效的配置Ext.data.Model
(在大多数情况下,这是推荐的方法!)以下是应如何执行的示例:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: ['id', 'name', 'email']
});
//The Store contains the AjaxProxy as an inline configuration
var store = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url : 'users.json'
}
});
store.load();
Run Code Online (Sandbox Code Playgroud)
现在,商店将通过使用Applied type
属性(在本例中为ajax)实例化代理。上面的代理行与
new Ext.data.proxy.Ajax({
url: 'users.json',
model: 'User',
reader: 'json'
});
Run Code Online (Sandbox Code Playgroud)
所以type
是一个有效的属性,只要你消耗代理等类配置使用它Ext.data.Model
或Ext.data.Store
而且,如果您需要自己创建代理实例,则需要创建具体实例。超类已在API中记录了其直接子类
但对于读者却无济于事的情况,因为您只能找到Server
&,Client
但它们在类描述部分列出Types of Proxy
代理类型
代理有两种主要类型-客户端和服务器。客户端代理将其数据保存在本地,并包括以下子类:
- LocalStorageProxy-如果浏览器支持,则将其数据保存到localStorage
- SessionStorageProxy-如果浏览器支持的话,将其数据保存到sessionStorage
- MemoryProxy-仅在内存中保存数据,刷新页面时所有数据都会丢失
服务器代理通过将请求发送到某个远程服务器来保存其数据。这些代理包括:
- Ajax-将请求发送到同一域中的服务器
- JsonP-使用JSON-P将请求发送到其他域上的服务器
- 休息-使用RESTful HTTP方法(GET / PUT / POST / DELETE)与服务器通信
- 直接-使用Ext.direct.Manager发送请求
代理的工作原理是执行的所有操作都是“创建”,“读取”,“更新”或“删除”。这四个操作分别映射到创建,读取,更新和销毁方法。每个Proxy子类都实现这些功能。
每个CRUD方法都希望将Operation对象作为唯一的参数。该操作封装了有关商店希望执行的操作,要修改的模型实例等信息。有关更多详细信息,请参见操作文档。每个CRUD方法还接受在完成时被异步调用的回调函数。
代理还支持通过批处理对象(由batch方法调用)对操作进行批处理。
自1.1.0起可用
归档时间: |
|
查看次数: |
2442 次 |
最近记录: |