2015-10-21 4 views
0
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre> 

    <ul data-bind="foreach: arrData" > 
     <li> 
      <span data-bind="text: name"></span> 
     </li> 
    </ul> 

Структура подобна $ data.arrData, которая arrData является наблюдаемым символом. я изменить содержимое, как это: переменные данныеMy Observablearray в нокаут для привязки foreach не обновляется?

arrData().splice(0, 1, ko.toJS(data.selectedData)); 

в $ делает обновление, но не observableArray. Но если я вставляю в массив в начале, то старое значение показывает, но не новое.

+0

вы можете добавить образец скрипку объясняя проблему или попробовать arrData.splice (//). –

ответ

3

, считывая значение arrData с помощью arrData(), вы возвращаетесь к базовому массиву. Кажется, что вы хотите использовать версию splice непосредственно на самом наблюдаемом массиве:

arrData.splice(0, 1, ko.toJS(data.selectedData)); 
+0

И какое решение? – marko

+2

Uhm ... точно то, что я разместил (удалите круглые скобки из 'arrData()') – Jamiec

+0

Альтернативно вы можете добиться того же путем: var temp = arrData(); temp.splice (0, 1, ko.toJS (data.selectedData)); arrData (температура); ' – Tyblitz

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