Cómo vincular los botones de diálogo jQuery a un modelador de vistas noqueadas
-
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?
Solución
Asegúrese de aplicar su propio
class
a los botones del diálogo:$("#dialog").dialog({ buttons: [{ text: 'Ok', class: 'ok-button' }] });
Toma el
button.ok-button
y aplicar undata-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");
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'
}]
});