2014-11-23 212 views
0

我不知道如何将数组更改为集合。 这里是我想做的事情(的CoffeeScript)阵列的建筑骨干集合

myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7'] 
@filters = new Backbone.Collection(myArray) 

我所得到的是 Backbone.Collection {长度:9,型号:数组[7] ...}

但每个模型内部集合看起来奇怪:

attributes: 
    Object 0: "s" 
      1: "t" 
      2: "r" 
      3: "1" 

我怎么可以构建收集如此,因为我有属性{名如:str1}

回答

1

我觉得骨干模型预期的对象不是字符串。数组转换为一组对象:

myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7'] 
myModels = for name in myArray then {name} 
@filters = new Backbone.Collection(myModels) 
+0

有趣,但是你的代码正在生成一个模型名称的集合:str7我怎么才能得到它们? – lipenco 2014-11-23 02:31:28

+0

奥普斯对不起,修复它 – Sukima 2014-11-23 02:36:09

+0

:) lifesaver。谢谢! – lipenco 2014-11-23 02:39:27

1

请允许我为所发生的事情在这里给个说法,

myArray = ['str1', 'str2', 'str3', 'str4', 'str5', 'str6', 'str7'] 

这部分需要你的阵列和存储在其内myArray的

myModels = for name in myArray then {name} 

上面的代码行创建了一个循环遍历数组的循环。它通过循环阵列的次数等于一个总数myArray.length

@filters = new Backbone.Collection(myModels) 

的上面的一行代码创建基于关闭的for循环新骨架的收集,即,它然后通过for循环,并且循环将结果存储在一个集合中。