Usando KnockoutJS, ¿cómo puedo eliminar un elemento de una matriz observable? Quiero poder hacer clic en el elemento de lista y eliminar el elemento de la matriz (y, por lo tanto, la lista).KnockoutJS eliminar el elemento de la matriz observable. El elemento es listitem dentro de ul, que fue generado por foreach
El siguiente ejemplo de código informa: 'this.expertise no está definido'.
¿Tengo que definir algún tipo de objeto de experiencia y luego llamar desde allí?
<ul data-bind="foreach: expertise">
<li data-bind="text: Key, click: $parent.removeExpertise"></li>
</ul>
<script type="text/javascript">
$(function() {
function AppViewModel() {
this.removeExpertise = function (expertise) {
this.expertise.remove(expertise);
};
this.expertise = ko.observable([
{ Key: 'Charles', Value: 'Charlesforth' },
{ Key: 'Denise', Value: 'Dentiste' }
]);
}
// Activates knockout.js
jQuery(document).ready(function() {
ko.applyBindings(new AppViewModel());
});
});
</script>
¿Qué hace el .bind? La palabra bind está en todos sus documentos, por lo que puede estar pasando por alto – Hoppe
.bind devuelve una nueva función que envuelve la función original y la llama con un valor constante para "this". En este caso, desea que siempre use la instancia de 'AppViewModel' como' this'. Espero que tenga sentido. –
esto sería bueno: viewModel.items.remove ("id", 1); viewModel.items.remove ("nombre", "Jim"); viewModel.items.remove (someObject); – jwize