首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >感官触觉联想

感官触觉联想
EN

Stack Overflow用户
提问于 2012-10-20 16:31:15
回答 2查看 652关注 0票数 0

我正在尝试使用本地存储来实现一个“有很多”的关联。我建立了两个模型:用户模型和产品模型。我的用户有很多产品。我想:

在用户获得授权后,通过AJAX从服务器加载我的用户。产品已经存储在本地存储中(如{"id":"ext-record-1","user_id":1,"name":"product1"})。

代码语言:javascript
复制
// The id and name are loaded via ajax
var user = Ext.create('User', {id: 1, name: 'Ed'});
var userProducts = user.products();
userProducts.load();

问题是:如果我调用关联,所有来自存储/代理的实例都会被加载。根据文档,应该只有user_id为的实例:1

筛选器已设置。只有当我从本地存储加载产品时才会发生这种情况,如果我在适当的地方创建它们就没有问题。保存到本地存储会破坏这种关联。

我在这里设置了一个不带本地存储的示例:http://www.senchafiddle.com/#J9VX6

并使用本地存储:http://www.senchafiddle.com/#J9VX6#hBDkq

请参阅http://docs.sencha.com/touch/2-0/#!/api/Ext.data.association.HasMany

我真的很感谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-31 16:21:18

这似乎是一个已知的bug,我在sencha touch论坛上得到了我的问题的链接:

http://www.sencha.com/forum/showthread.php?173327-WebStorage-proxy-can-t-deal-with-associated-data

我认为直到Sencha Touch的下一个版本才能解决这个问题

票数 1
EN

Stack Overflow用户

发布于 2012-10-31 09:39:03

Richard Chambers是对的;不一定要在userProducts上调用load()。

更进一步说。确保用户模型上的idProperty设置为'id‘(这是默认设置),并且您的用户关联上的foreignKey设置为’hasMany _id‘。

如果这不能提供解决方案,您可能希望尝试在UserProducts上使用筛选器:

代码语言:javascript
复制
var userProducts = user.products().filter("user_id", user.id);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12986700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档