Sencha touch 2 森查触摸协会

Sencha touch 2 森查触摸协会,sencha-touch-2,Sencha Touch 2,我正在尝试使用localstorage获得一个“有很多”关联。我建立了两个模型:用户模型和产品模型。我的用户有很多产品。我想: 在用户获得授权后,通过AJAX从服务器加载我的用户。产品已经存储在localstorage中(例如,{“id”:“ext-record-1”,“user_id”:1,“name”:“product1”}) 问题是:如果我调用关联,存储/代理中的所有实例都会被加载。根据文档,应该只有“user_id”的实例:1 过滤器已设置。只有当我从localstorage加载产品时才

我正在尝试使用localstorage获得一个“有很多”关联。我建立了两个模型:用户模型和产品模型。我的用户有很多产品。我想:

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

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

过滤器已设置。只有当我从localstorage加载产品时才会发生这种情况,如果我在适当的位置创建它们,就不会有问题。保存到localstore会中断关联

我在这里建立了一个没有本地存储的示例:

使用localstorage:


我真的很感谢你的帮助

理查德·钱伯斯是对的;不必对userProducts调用load()

而且。确保用户模型上的idProperty设置为“id”(默认设置),hasMany关联上的foreignKey设置为“User_id”

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

var userProducts = user.products().filter("user_id", user.id);

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


我认为,在Sencha Touch的下一个版本发布之前,这个问题不会得到解决。如果您删除您的否决票或解释为什么添加否决票,这将是一件好事。文档似乎在说您不需要使用源代码行“userProducts.load();”,因为当您使用“var userProducts=user.products();”时它将根据您指定的筛选器自动加载。谢谢,但我认为这不是问题所在。问题在于使用与Web存储的关联。有关更多详细信息,请参阅我答案中的链接。我提供了一个答案,因为这似乎是Web存储和关联的已知问题。负载不是问题所在。我已经在使用自定义过滤器来解决这个问题。很高兴听到你现在知道了问题所在。
var userProducts = user.products().filter("user_id", user.id);