3
observableArray를 observableArray 내에 동적 크기로 놓고 View에 데이터를 바인드해야합니다.중첩 된 동적 observableArray에서 데이터 바인딩보기
View는 newData의 값을 렌더링하지만, View에서 편집 할 때 newData에서 값을 업데이트하지 않습니다.
https://jsfiddle.net/tvxyyzkp/6/
ko.applyBindings(new (function() {
var self = this;
self.lengthNewData = ko.observable(2);
self.newData = ko.observableArray();
self.AddDataStrings = function() {
let newString = ko.observableArray();
for(let i0 = 0; i0 < self.lengthNewData(); i0++)
newString.push(i0);
self.newData.push(newString);
}
self.SendData = function() {
alert(ko.toJSON(self.newData));
}
})());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<span data-bind="visible: !newData().length">Number of rows: <input data-bind="value: lengthNewData"/></span>
<input type="button" value="Add" data-bind="click: $root.AddDataStrings"/>
<input type="button" value="Send" data-bind="visible: newData().length, click: $root.SendData"/><br>
<table>
<tbody data-bind="foreach: newData">
<tr data-bind="foreach: $data">
<td><input data-bind="value: $data"/></td>
</tr>
</tbody>
</table>
Add
, 편집 및
Send
밀어 넣습니다. 데이터가 수정되지 않았습니다!
왜 변경해야합니까?
바이올린 링크가 끊어집니다. 친절하게 업데이트하십시오. – Sajal
@Sajal Ok. 나는 그것을 바로 잡았다. –