Я пытаюсь решить небольшую проблему с отображением ko. Сценарий заключается в том, что моя ViewModel - это в основном коллекция объектов. Каждый из объектов создается из JSon вызова, таким образом:нокаут создать пустой объект из автоматически отображаемого наблюдаемого
var ViewModel = ko.observableArray();
$.getJSON(url, function(data) {
ViewModel.push(ko.mapping.fromJSON(data));
});
Это прекрасно работает, и я могу делать все вроде магии в моем HTML. Вопрос в том, что, например, я хочу добавить что-то в свою коллекцию, скажем, для поддержки сценария «Добавить и изменить» на стороне клиента. Я хотел бы сделать что-то вроде:
<input type="button" value="add new" data-bind="click: AddNew" />
И я хотел бы функцию AddNew в ViewModel быть что-то вроде:
function AddNew() {
this.push(// WHAT HERE?);
}
В основном нужно нажать объект, который идентичен другим уже существующий, но, конечно, со всеми скрытыми свойствами ...
Я думал о способе «клонирования» объекта из списка и установки всех наблюдаемых на пустой, но я не знаю, с чего начать. m испуган:/
«Одно предостережение с плагином для сопоставления заключается в том, что для обновления объектов он ожидает, что эти объекты были первоначально отображены плагином. Вот краткий пример того, как это можно сделать». - Если бы я знал это раньше, это спасло бы меня много времени! – ec2011