У меня есть строка JSON, которую я сопоставляю с плагином ko.mapping, и мне нужно создать наблюдаемые привязки для одного из сопоставленных массивов.Массив находится в JSON как [1,2,3,4,5], поэтому у него нет индекса.
У меня есть следующий код, работающий до определенной точки:
<script id="statRowTemplate" type="text/html">
{{if type() != "column"}}
<tr>
<td><label>Name: </label><input data-bind="value: name" /></td>
<td><label>Plot Points: </label><ul data-bind="template: {name: 'dataTemplate' , foreach: data}"></ul> </td>
</tr>
{{/if}}
</script>
<script type="text/html" id="dataTemplate">
<li>
<p>${this.data}</p>
<input data-bind="value: this.data" />
</li>
</script>
<button data-bind="click: saveChanges">Save Changes</button>
Таким образом, все работает, как ожидалось, за исключением <input data-bind="value: this.data" />
Это поле остается пустым ... ${this.data}
Однако показывает правильное значение.
В целом, я пытаюсь обновить строку JSON и повторно сохранить ее в квартирефайл.Я могу привязать массив данных: [1,2,3,4]
непосредственно к входному значению, но тогда он не будет обновлен как массив.
Вот viewModel: var viewModel = {};
$.getJSON('/data-forecast-accuracy.json', function(result) {
viewModel.stats = ko.mapping.fromJS(result);
console.log(result)
viewModel.saveChanges = function() {
var unmapped = ko.mapping.toJSON(viewModel.stats);
console.log(unmapped);
$.post('save-changes.php', {data: unmapped})
.success(function() { console.log("second success"); })
.error(function() { console.log("error"); })
.complete(function() { console.log("complete"); });
}
ko.applyBindings(viewModel);
});
Вот JSON:
[
{
"type":"spline",
"marker":{
"symbol":"diamond"
},
"name":"Cumulative",
"data":[10,17,18,18,16,17,18,19]
},
{
"type":"spline",
"marker":{
"symbol":"circle"
},
"name":"Monthly",
"data":[10,22,20,19,8,20,25,23]
}
]
Любая помощь будетс благодарностьюТакже открыты для предложений, если я подхожу к этому под неправильным углом.В конечном счете, просто нужно иметь возможность изменять строчку JSON через пользовательский интерфейс и затем сохранять ее.
Заранее спасибо.