替换视图中的集合

时间:2012-07-20 12:09:13

标签: backbone.js

我想替换视图中的集合。我使用reset命令:

var maColl=mContent.get(ici).get("svgParameterList");  
msvgParameterListView.collection.reset(maColl);

JSON.stringify给出了这个:

maColl

    [{"id":"x","name":"x"},....{"id":"style","name":"style"}]  

msvgParameterListView.collection

    [[{"id":"x","name":"x"},....{"id":"style","name":"style"}]]  

现在,我将我的集合放在一个数组中,所以当我渲染它时返回null值。

如何将集合数组更改为集合?
简而言之,如何使msvgParameterListView.collection等于maColl?

请注意新集合的[[ ]] 注意maColl是另一个集合中的集合。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您是否尝试使用其他集合的模型重置集合? collection.toJSON是你的朋友:

  

toJSON collection.toJSON()
  返回一个包含集合中每个模型的属性哈希的数组。这可以用来   序列化并保持整个集合。这个名字   方法有点混乱,因为它符合JavaScript的JSON   API。

可以像这样应用

msvgParameterListView.collection.reset(maColl.toJSON());

或者,如果您想保留对原始模型的引用,请传递maColl.models

msvgParameterListView.collection.reset(maColl.models);

直接将集合传递给reset只会混淆Bac​​kbone。