我想替换视图中的集合。我使用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是另一个集合中的集合。
答案 0 :(得分:2)
如果我理解正确,您是否尝试使用其他集合的模型重置集合? collection.toJSON
是你的朋友:
toJSON collection.toJSON()
返回一个包含集合中每个模型的属性哈希的数组。这可以用来 序列化并保持整个集合。这个名字 方法有点混乱,因为它符合JavaScript的JSON API。
可以像这样应用
msvgParameterListView.collection.reset(maColl.toJSON());
或者,如果您想保留对原始模型的引用,请传递maColl.models
msvgParameterListView.collection.reset(maColl.models);
直接将集合传递给reset
只会混淆Backbone。