Backbone.js 从web worker返回主干模型时,主干模型结构会发生更改
我正在尝试用一系列模型重置主干集合。它被重置,但模型结构被更改(嵌套一级) 以下是详细说明: 型号 var SeatModel=Backbone.Model.extend({ })) 收藏 var myCollection=Backbone.Collection.extend({ })) 现在,我正在web worker中执行一些逻辑,它生成一系列模型。数组的大小取决于我点击的url 当阵列准备就绪时,我使用以下方法重置集合中的数据: (在此之前,我已经实例化了集合并将其设置在服务对象中) worker.onmessage=函数(e){ 重置后,集合的结构将更改为:Backbone.js 从web worker返回主干模型时,主干模型结构会发生更改,backbone.js,web-worker,backbone.js-collections,backbone-model,Backbone.js,Web Worker,Backbone.js Collections,Backbone Model,我正在尝试用一系列模型重置主干集合。它被重置,但模型结构被更改(嵌套一级) 以下是详细说明: 型号 var SeatModel=Backbone.Model.extend({ })) 收藏 var myCollection=Backbone.Collection.extend({ })) 现在,我正在web worker中执行一些逻辑,它生成一系列模型。数组的大小取决于我点击的url 当阵列准备就绪时,我使用以下方法重置集合中的数据: (在此之前,我已经实例化了集合并将其设置在服务对象中) wo
models: Array[3154]
[0...99]
0:g.Model
attributes:
attributes:
price: "12"
然而,它应该是这样的:
models: Array[3154]
[0...99]
0:g.Model
attributes:
price: "12"
此外,阵列中的模型数量也减少了(在这种情况下,应该是6100左右)
我无法弄清楚,是什么导致内部结构在调用集合上的reset时嵌套了一个级别
更新后的帖子
算出了。我们无法发送post message中带有函数的对象,因此数组中的模型只有属性而没有函数。Related算出了。我们无法发送post message中带有函数的对象,因此数组中的模型只有属性而没有函数。这与问题有关rCollection看起来像?@PaulT.Rawkeen这是一个模型数组,我从一个网络工作者那里返回。我刚刚尝试了
var coll=new Backbone.Collection();
+coll.reset([{id:1,name:'a},{id:2,name:'b},{id:3,name:'c}]))
一切都是应该的。检查或呈现您真实的newDataForCollection
以确保我们谈论的是相同的事情。@PaulT.Rawkeen是的,在这种情况下它会起作用。我所做的是,从web worker传递数组。但我刚刚知道,我们不能从web workers传递带有函数的对象。因此,一旦在主线程中收到模型,它们就不再是主干模型。无论如何,感谢您的快速响应欢迎您!很高兴您发现了问题。
newDataForCollection = e.data;
//update the collection
service.get("myCollection").reset(newDataForCollection);
};
models: Array[3154]
[0...99]
0:g.Model
attributes:
attributes:
price: "12"
models: Array[3154]
[0...99]
0:g.Model
attributes:
price: "12"