Cómo vincular los botones de diálogo jQuery a un modelador de vistas noqueadas

StackOverflow https://stackoverflow.com/questions/7801458

  •  22-10-2019
  •  | 
  •  

Pregunta

Lo que me gustaría hacer es hacer un cuadro de diálogo donde los botones estén databunados para el modelador ViewModel para que pueda habilitar o deshabilitar esos botones dependiendo de varias condiciones en el formulario

Pero la forma en que haces botones en diálogos de jQuery es un poco diferente de lo normal.

¿Alguien tiene una solución para esto?

¿Fue útil?

Solución

  1. Asegúrese de aplicar su propio class a los botones del diálogo:

    $("#dialog").dialog({
        buttons: [{
            text: 'Ok',
            class: 'ok-button'
        }]
    });
    
  2. Toma el button.ok-button y aplicar un data-bind atributo a él (visible Aquí, solo para mostrarte que funciona). Aquí, name es una propiedad observable de nuestro modelo de vista:

    $("button.ok-button").attr("data-bind", "visible: name().length");
    
  3. Aplicar enlaces normalmente:

    var model = { name: ko.observable('') };
    ko.applyBindings(model);
    

Aquí hay un ejemplo que ocultar es un botón "OK" en el cuadro de diálogo si name (un observable) tiene una longitud > 0: http://jsfiddle.net/9crfy/

Otros consejos

Para agregar a la respuesta de Andrew, ya que el atributo de unión a datos es solo otro atributo que puede agregar a sus botones, esto también funcionaría:

$("#dialog").dialog({
    buttons: [{
        text: 'Ok',
        'data-bind': 'visible: name().length'
    }]
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top