2013-05-14 3 views
6

У меня есть следующий код:Backbone метод сортировки

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

Я называю collection.sort() и, кажется, работает и сортирует модели относительно Имя поля проблема заключается в том, что дает более высокий приоритет прописной буквы, например ("Некоторые test '<' more test ') есть ли способ переопределить поведение?

ответ

11

Самое простое решение, это просто сделать следующее:

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

Это будет конвертировать все в нижний регистр перед сравнением поэтому он будет сравнивать таким образом, который игнорирует случай.

6

Для случая нечувствительный сравнения, использовать встроенную функцию JS toLowerCase:

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

Замечательно, спасибо! – streetlight