Estoy tratando de agregar JS knockout a una página de búsqueda en nuestro sitio web. Actualmente, abre un cuadro de diálogo jQuery, que tiene varias casillas de verificación de criterios que puede seleccionar.¿Cómo crear una matriz observable con deshacer?
Hay varios cuadros de diálogo con múltiples tipos de criterios. Cuando abre el cuadro de diálogo, las casillas de verificación no entran en vigencia hasta que presiona el botón "Actualizar", si hace clic en cancelar o simplemente cierra la ventana, los cambios realizados se revierten y el cuadro de diálogo se establece en su estado anterior.
He leído this y algunas otras publicaciones. Sin embargo, esto parece funcionar solo con ko.observable
, y parece que no puedo hacer que funcione con ko.observableArray
.
¿Alguien ha logrado esto o tiene alguna idea?
Un ejemplo de lo que quiero hacer:
HTML:
<form>
<div>
<div>
<label><input type="checkbox" data-bind="checked: genders" value="1" />Male</label>
<label><input type="checkbox" data-bind="checked: genders" value="2" />Female</label>
</div>
</div>
<a id="buttonCancel">Cancel</a>
<a id="buttonUpdate">Update</a>
</form>
<div data-bind="text: ko.toJSON(viewModel)"></div>
Javascript:
var viewModel = {
genders: ko.observableArrayWithUndo([])
};
ko.applyBindings(viewModel);
$('#buttonCancel').click(function(){
viewModel.genders.resetChange();
});
$('#buttonUpdate').click(function(){
viewModel.genders.commit();
return false;
});
¡Gracias por la respuesta rápida! Déjame ver cómo funciona. –