我不知道如何将数组更改为集合。 这就是我想做的事(coffeeScript)
myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7']
@filters = new Backbone.Collection(myArray)
我得到的是 Backbone.Collection {length:9,models:Array [7] ...}
但是集合中的每个模型看起来都很奇怪:
attributes:
Object 0: "s"
1: "t"
2: "r"
3: "1"
我如何构建集合,因为我有属性{name:str1}
答案 0 :(得分:1)
我认为Backbone Models期望对象不是字符串。将数组转换为一组对象:
myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7']
myModels = for name in myArray then {name}
@filters = new Backbone.Collection(myModels)
答案 1 :(得分:1)
请允许我解释一下这里发生了什么,
myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7']
此部分接收您的数组并将其存储在myArray
中myModels = for name in myArray then {name}
上面的代码行创建了一个遍历数组的for循环。它在数组中循环的次数等于myArray.length
@filters = new Backbone.Collection(myModels)
上面的代码行创建了一个基于for循环的新骨干集合,即然后循环遍历for循环并将结果存储在集合中。