2014-11-23 83 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循環,並且循環將結果存儲在一個集合中。