我应该在模型或存储中指定代理吗?
Should I specify the proxy in the Model or the Store?
我是跨平台手机开发的新手,最近我学习了一些关于如何在我的应用中使用Sencha Touch的基本教程。在我看来,他们的方法不一致让我感到困惑。我的问题是:
我正在使用MVC设计模式。当在应用程序中定义用于存储数据的代理时,我应该在模型中还是在商店中这样做?我看过这两种方法,但不确定哪一种更好,或者哪一种应该使用。以下是我的意思的例子:
Store中定义的代理:App.stores.users = new Ext.data.Store({
model: 'User',
autoLoad: true,
proxy: {
type: 'localstorage',
id: 'sencha-users'
}
});
在模型中定义的代理:
App.models.User = Ext.regModel('User', {
fields: [
{
name: 'email',
type: 'string'
}, {
name: 'firstname',
type: 'string'
}, {
name: 'lastname',
type: 'string'
}, {
name: 'password',
type: 'string'
}
],
proxy: {
type: 'localstorage',
id: 'sencha-users'
}
});
他们把它留给你,因为这是一个实现决策。将其绑定到模型的便利性决定了一个强的一对一关系。
在ExtJS 3.3.1及以下版本中,代理总是与存储绑定在一起。直到Sencha Touch和ExtJS 4,它们才允许你直接绑定到模型。
我能想到的把它和模型联系在一起的最好理由是保持它的自成一体。
直接在模型上定义代理是版本4中的一种新方法,它的主要好处是我们可以轻松地加载和保存模型数据,而无需创建一个Store,就像我们在ExtJS 3中所做的那样。
编辑
抱歉,如果我的解释有点高水平。
将Store视为模型的集合。
商店可以自我意识到如何通过使用为商店定义的代理来填充这些模型。或者模型可能已经知道如何通过定义代理来填充自己。
如果我没有说清楚,请让我知道。:)
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- Ext.js从json构建模型关系的问题
- 显示模块模式在Knockout中设置模型的新实例
- 使用导航属性创建Kendo UI网格模型的问题
- Angular,函数在(模型)工厂中返回值
- 将 ExtJS 代理 AJAX 响应映射到模型
- 我应该在模型或存储中指定代理吗?
- Extjs数据模型/存储是否支持任何包装代理构建器方法?
- 如何使用代理模型发出POST请求而不是GET请求
- 如何为模型和存储提供不同的代理配置