2013-05-14 11 views
6

Mam następujący kod:Backbone Metoda sortowania

Campaign.Collection = Backbone.Collection.extend({initialize: function() { 
}, 
comparator: function(item) { return item.get('Name'); } 
} 

Wzywam collection.sort() i wydaje się działać i sortuje modeli dotyczących pole Nazwa problemem jest to, że daje większą wagę do wielkich liter przykład ("Niektóre test '<' więcej testu ') czy istnieje sposób na obejście tego zachowania?

Odpowiedz

11

Najprostszym rozwiązaniem jest po prostu wykonaj następujące czynności:

Campaign.Collection = Backbone.Collection.extend({ 
    initialize: function() {}, 
    comparator: function(item) { return item.get('Name').toLowerCase(); } 
}; 

To przekonwertuje wszystko małymi literami przed porównaniem więc będzie porównywać w sposób, który ignoruje przypadek.

6

dla przypadku niewrażliwe porównania użyć natywną funkcję JS toLowerCase:

Campaign.Collection = Backbone.Collection.extend({initialize: function() { 
}, 
comparator: function(item) { return item.get('Name').toLowerCase(); } 
} 
+0

Cudownie, dziękuję! – streetlight