构建数组的骨干集合

时间:2014-11-23 02:02:23

标签: arrays backbone.js coffeescript

我不知道如何将数组更改为集合。 这就是我想做的事(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}

2 个答案:

答案 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循环并将结果存储在集合中。