2016-03-02 1 views
0

Добавление новой строки к нокаута наблюдаемом массив, который сортируется с помощью Jquery TableSorter добавляет строки в два раза, что приводит к дублирования уже существующего rows.PFB мой код:в Knockout Добавление данных массива давая повторяющиеся строки

<tbody data-bind="foreach: jarFiles"> //jarFiles:KnockoutArray   
       <td><span data-bind="text: fileName"></span></td> 
       <td><span data-bind="text: name"></span></td> 
       <td>...</tbody> 

сортировка применяется по щелчку на первых двух строках:

$("#fileName").click(function() {              
    $("#display").tablesorter(); 
}//Invokes tablesorter on click function for fileName column 

После сортировки я пытаюсь обновить массив, который находится в табличном формате, он возвращает дубликаты:

 that._replace = function(newList) {//newList=oldList+newelement    
        that.jarFiles.removeAll() 
        var i=newList.length; 
        _.each(newList, function(jar){ 
         that.jarFiles.push(jar); 
        }); 

Страница загружается с использованием ajax.

enter image description here

+0

Я не уверен, как использовать нокаут ... то, что нужно, чтобы вызвать «обновление» после того, как новое содержание было добавлено - '$ («#») дисплей. триггер ('update'); ' – Mottie

+0

http://stackoverflow.com/questions/14593367/how-to-work-with-jquery-table-sorter-with-knockout –

+0

запуск обновления не помогает. Это не работает. – Somekindofcoder

ответ

0
that._replace = function(newList) { 
    that.jarFiles.removeAll(); 
    $(".display").find('tbody').empty(); // To clear table body 
    _.each(newList, function(jar){ 
     that.jarFiles.push(jar); 
    }); 
    $(".display").trigger("update"); // To update the tablesorter 
}; 
Смежные вопросы