2014-12-18 2 views
0

Я использую функцию ниже, чтобы отсортировать базовую коллекцию. Я сортирую коллекцию со ссылкой на Date (createdate). Результат, который я получаю, имеет самый старый элемент, но я хочу, чтобы результат был как последний элемент первым, так и самый старый элемент последним.Обратный сортировка backbonejs

var campaignsNewCampaigns = _.sortBy(campaigns, function(campaign) { 
    if (campaign.creationdate) { 
    var getDate = campaign.creationdate.replace("-", "").replace("-", "").replace(":", "").replace(":", ""); 

    return -Number(getDate); 
    } 
    return 0; 
}); 

ответ

0

Я получил решение для этого ,

if (campaign.creationdate) { 
      var getDate = (new Date(campaign.creationdate)).getTime(); 
      return -Number(getDate); 
     } 
0

В backbone.js у вас есть поле компаратора и функция сортировки. Чтобы Установить коллекцию своего рода, вы должны добавить эту функцию в вашей коллекции:

//... 
sortByDate : function(){ 
    this.comparator = function(campaign){ 
     // I consider creationDate is a Date Object 
     return -campaign.get('creationdate').getTime(); 
    }; 
    this.sort(); 
}, 
//... 

И теперь, чтобы отсортировать коллекцию, вызовите этот метод следующим образом:

var campaignsNewCampaigns = campaigns.sortByDate(); 
+0

привет, спасибо за ответ. – Rahul92

+0

Но я думаю, что ваш код, похоже, не работает на моей странице. Я дам вам любой другой пример уаг campaignsTopPerformance = _.sortBy (кампании, функция (кампания) { если (campaign.max_ctr) { возвращение -Количество (campaign.max_ctr) } возврат 0; }); в приведенной выше функции я сортируюсь по max_ctr и успешно работаю. – Rahul92

+0

Я уже получаю отсортированный массив, но я хочу его в обратном формате. – Rahul92

Смежные вопросы