1

我想替换视图内的集合。我使用这样的重置命令:

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

AJSON.stringify给出了这个:

麦科尔

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

msvgParameterListView.collection

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

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

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

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

4

1 回答 1

2

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

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

可以这样应用

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

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

msvgParameterListView.collection.reset(maColl.models);

直接将集合传递给reset只会混淆 Backbone。

于 2012-07-20T12:46:10.830 回答