knockoutjs cliquez sur la liaison à l'intérieur de foreach liaison

EDIT: Problème n'était pas lié à la liaison, mais à une simple erreur JavaScript.

J'ai une question concernant un clic de liaison à l'intérieur d'un foreach de liaison.
J'ai une liste avec des éléments montrant une zone de liste déroulante pour sélectionner une valeur à partir des données de base. Les éléments peuvent être ajoutés et retirés de cette liste.
Le bouton pour supprimer des éléments est imbriqué dans le foreach de liaison. Donc je m'attend à ce que je doit le lier avec $parent>

<button data-bind="click: $parent.removeNumber">-</button>

Qui ne fonctionne pas. Mais la version suivante fonctionne:

<button data-bind="click: removeNumber">-</button>

Je ne comprends pas pourquoi.

Le code:

<h2>numbers:</h2>
 <ul data-bind="foreach: numbers">
     <li>
       <select data-bind="value: id, 
                          options: masterData, 
                          optionsText: 'caption', 
                          optionsValue: 'id'"></select>
        <br />
        value: <span data-bind="text: id"></span>
        <br />
        <button data-bind="click: $parent.removeNumber">-</button>      
    </li>
</ul>
<button data-bind="click: addNumber">+</button>
function ViewModel() {
self.masterData = [{ id: 1, caption: "One"},
{ id: 2, caption: "Two"}];
self.numbers = ko.observableArray([{
id: ko.observable(2)}]);
self.addNumber = function() {
self.numbers.push({
id: ko.observable(2)
});
};
self.removeNumber = function(item) {
self.numbers.destroy(item);
console.log("removed" + item);
};
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);​

J'ai créé un violon (avec la version de travail):
http://jsfiddle.net/delixfe/NWWH8/

Merci pour votre aide.

OriginalL'auteur delixfe | 2012-06-05

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *