2013-11-04 34 views
0

backbone.js是選擇菜單項後,能對一個集合中的項目有一個簡單的功能操作的散列函數(這裏所說的「按價格排序」):的CoffeeScript/Backbone.js的:寫一個字符串

setSort: (event)-> 
     event.preventDefault() 
     event.stopPropagation() 
     $target = $(event.target) 
     switch $target.text() 
      when "Sort by Price" 
       @collection.comparator = (model)-> 
        model.get("Price") 
       @collection.sort() 

這非常簡單 - 它從集合中的各個模型抓取Price屬性,然後對它們進行排序。這部分工作。

現在我想採取不同的字段,Name屬性(一個字符串),並運行一個任意的散列,以模擬任意排序。我會如何去做這件事?

回答

0

如果你想隨機排序,你可能只是做

@collection.comparator = Math.random 

無需散列字符串,如果目標只是隨機化。

當然,上述內容會在每次調用sort()時(包括將新模型添加到集合中時)改變排序順序。因此,如果您每次都希望進行相同的「隨機」排序,則可以使用隨機數設置屬性,或者嘗試類似the answers here來計算散列。