J'ai une page que je lie un viewmodel à une table HTML dans une boîte de dialogue jQuery UI.Knockout removeAll() non reconnu
Lorsque l'utilisateur ferme la boîte de dialogue, je souhaite supprimer tout l'élément à l'intérieur du modèle de vue observableArray
lié au tableau HTML. J'utilise la méthode removeAll()
, mais mon firebug m'a dit que ce n'est pas reconnu comme une fonction.
Pouvez-vous m'aider?
Ceci est un scénario simplifié.
HTML
<input type="button" id="open" value="GO!"><br />
<div id='hidden'>
<table>
<tbody data-bind="foreach: i">
<tr>
<td><span data-bind="text: code" /></td>
<td><span data-bind="text: descr" /></td>
</tr>
</tbody>
</table>
</div>
JS
$(function() {
function vm() {
this.items = [
{code: "2011",descr: "descr 2011"},
{code: "2012",descr: "descr 2012"},
{code: "2013",descr: "descr 2013"}
];
this.i = ko.observableArray(this.items);
this.clearFoundEvals = function()
{
this.i.removeAll();
};
return this;
}
ko.applyBindings(new vm());
$dialog = $('#hidden').dialog({
autoOpen: false,
height: 200,
width: 300,
buttons: {
cancel: function() {
vm.clearFoundEvals();
$(this).dialog('close');
}
}
});
$('#open').click(function(){
$dialog.dialog('open');
});
});
J'ai fait une erreur dans mon code, mais cela ne fonctionne toujours pas – AngeloBad
Lorsque vous le déboguez, à quoi cela résout-il? Apparaît-il comme un observableArray? En outre, je ne comprends pas parfaitement pourquoi vous voulez appeler removeAll; cela supprimera tous les éléments de l'observableArray, c'est ce que vous voulez vraiment faire? –
Oui, c'est juste ce que je veux faire. RemoveAll l'élément dans observableArray – AngeloBad