2013-06-12 3 views
0

Я пытаюсь сортировать мою сетку. Ниже мой коднокаут сортировка не работает

ko.moveInGrid = { 
    // Defines a view model class you can use to populate a grid 
    viewModel : function(configuration) { 
     this.data = configuration.data; 
     this.currentPageIndex = ko.observable(0); 
     this.pageSize = configuration.pageSize || 5; 

     // If you don't specify columns configuration, we'll use scaffolding 
     this.columns = configuration.columns 
       || getColumnsForScaffolding(ko.utils 
         .unwrapObservable(this.data)); 
     this.actions = configuration.actions; 

     this.itemsOnCurrentPage = ko.computed(function() { 
      var startIndex = this.pageSize * this.currentPageIndex(); 
      return this.data.slice(startIndex, startIndex + this.pageSize); 
     }, this); 

     this.maxPageIndex = ko.computed(function() { 
      return Math.ceil(ko.utils.unwrapObservable(this.data).length 
        /this.pageSize) - 1; 
     }, this); 
     this.sortByName = function() { 
      console.info(configuration.columns); 
      console.log("this works"); 
      configuration.sort(function(a, b) { 
        return a.name < b.name ? -1 : 1; 
       }); 
      }; 
    } 
}; 

И это, как я называю мой function

<th data-bind=\"click: $root.sortByName,attr:{'data-translate': headerText}\" class=\"sorting\"></th>\ 

Мои ViewModel прекрасно. Когда я нажимаю на мой заголовок, он говорит следующую ошибку

TypeError: configuration.sort is not a function 
+0

объект конфигурации отсутствует функция сортировки? – Anders

+0

yes Я проверил 'configuration.data.sort()' он не выдает никакой ошибки, но сортировка просто не работает – Ahmed

+0

Inface 'configuaration.data' содержит' sort() 'function – Ahmed

ответ

0

Я видел, как вы хотите отсортировать имя, I гостя, что имя находится в viewModel.data. Таким образом, вы можете вначале проверить ниже код своей работы

viewModel.data.sort(function(a, b) { 
       return a.name < b.name ? -1 : 1; 
      });). 
Смежные вопросы