EDIT: el Problema no estaba relacionado con la unión, pero para un simple JavaScript error.

Tengo una pregunta relativa a un clic de unión dentro de un foreach de unión.
Tengo una lista con los elementos que muestra un cuadro de lista desplegable para seleccionar un valor de los datos maestros. Los elementos se pueden agregar y quitar de la lista.
El botón para eliminar los elementos que se anida en el foreach de unión. Por lo tanto, yo esperaba que me deben enlazar con $parent>

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

Que no funciona. Pero la versión siguientes obras:

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

Yo no entiendo por qué.

El código:

<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);​

He creado un violín (con la versión de trabajo):
http://jsfiddle.net/delixfe/NWWH8/

Gracias por tu ayuda.

OriginalEl autor delixfe | 2012-06-05

1 Comentario

  1. 9

    Usted me tenía por un segundo!

    Estás en lo correcto, $parent debería ser necesario. Su error fue no definir self en su viewmodel. Después de hacer eso, $parent se requiere en el removeButton, así como la masterData de unión.

    Aquí es un trabajo de violín: http://jsfiddle.net/FpSWb/

    Oh. Un millón de gracias.
    jsfiddle no funciona

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here