我对跨平台移动开发比较陌生,最近一直在学习如何在我的应用程序中使用Sencha Touch的基本教程。我觉得他的方法不一致让我感到困惑。所以这是我的问题:
我正在使用MVC设计模式。在定义用于在应用程序中存储数据的代理时,我应该在模型中还是在商店中执行此操作?我已经看到两者都已完成,并且不确定哪个更好,或者每个应该使用的情况。以下是我的意思的例子:
商店:
中定义的代理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'
}
});
答案 0 :(得分:4)
他们不赞成你,因为这是一个实施决定。将它与模型联系起来的便利性决定了强烈的一对一关系。
在ExtJS 3.3.1及更低版本中,代理始终与商店绑定。直到Sencha Touch和ExtJS 4才允许你直接与模特绑定。
我能想到将它与模型联系起来的最好理由是让它保持独立。
直接在模型上定义代理是第4版中的一种新方法 - 它的主要好处是我们可以轻松加载和保存模型数据而无需创建存储,就像我们在ExtJS 3中所做的那样。
修改强>
很抱歉,如果我的解释有点高。
将商店视为模型的集合。
商店可以通过使用为商店定义的代理来自我了解如何填充这些模型。 或模型可能已经知道如何通过定义代理来填充自己。
如果我没有说清楚,请告诉我。 :)