2016-07-06 3 views
0

У меня есть модель Ko, которая инициализирована, она имеет наблюдаемый массив, а затем более поздняя дата данных заполняется. Однако пользовательский интерфейс, похоже, не подтверждает изменения. Первоначально я использовал не наблюдаемый массив, потому что ничего не происходит, когда элементы добавляются или удаляются. Маленькая помощь.ko.observableArray не UI не UPDating.

Я инициализирую массив данных для использования позже var Data = [];

$(function() 
{ 
    KoAppViewModel = { 
     SF: ko.observableArray(Data), 
     selected: ko.observable("") 
    }; 
    ko.applyBindings(KoAppViewModel); 
}) 

Добавить каждый из новых элементов в массиве

function searchColumns(columnName, displayValue) { 
     return { 
      columnName: columnName, 
      displayValue: displayValue 

     }; 
    } 

В этом разделе Просто действует для заполнения массива в точке позже в коде.

function Initialize Fields() { 
     data = [ 
      new searchColumns("sub", "Subs"), 
      new searchColumns("ck", "Check"), 
      new searchColumns("Ntes", "Notes"), 

     ]; 
    ko.utils.arrayPushAll(Data, data); 
    } 

Heres заглушки из Html, который выполняет итерации над массивом и заполняет UL. Это работает, если я инициализирую массив данными, но добавив его позже, похоже, игнорирует его. Я пробовал прокручивать и индивидуально добавлять их также без успеха.

<ul data-bind="foreach:SF"> 
         <li style="list-style-type:none;"> 
          <input type="radio" data-bind="checkedValue: columnName, checked: $parent.selected" name="SearchFieldstyu" />&nbsp; 
          <span data-bind="text: displayValue"></span> 
         </li> 
        </ul> 

ответ

0

Просто забыл добавить valueWillMutate() и valueHasMutated() к основному массиву после его заполнения.

function Initialize Fields() { 
     data = [ 
      new searchColumns("sub", "Subs"), 
      new searchColumns("ck", "Check"), 
      new searchColumns("Ntes", "Notes"), 

     ]; 



KoAppViewModel.SF.valueWillMutate(); 



ko.utils.arrayPushAll(Data, data); 
    } 

KoAppViewModel.SF.valueHasMutated(); 
Смежные вопросы