我想做的是创建一个对话框,其中按钮被数据绑定到淘汰视图模型,因此我可以根据表单上的各种条件启用或禁用这些按钮
但是你在jquery对话框中创建按钮的方式与正常情况略有不同。
任何人都有解决方案吗?
答案 0 :(得分:6)
确保将自己的class
应用于对话框的按钮:
$("#dialog").dialog({
buttons: [{
text: 'Ok',
class: 'ok-button'
}]
});
抓住button.ok-button
并在其中应用data-bind
属性(visible
此处,只是为了向您展示它的工作原理)。这里,name
是我们视图模型的可观察属性:
$("button.ok-button").attr("data-bind", "visible: name().length");
正常应用绑定:
var model = { name: ko.observable('') };
ko.applyBindings(model);
这是一个示例,如果name
(一个可观察的)的长度为> 0
,则会在对话框中隐藏“确定”按钮:http://jsfiddle.net/9cRFy/
答案 1 :(得分:3)
要添加安德鲁的答案,因为数据绑定属性只是您可以添加到按钮的另一个属性,这也可以起作用:
$("#dialog").dialog({
buttons: [{
text: 'Ok',
'data-bind': 'visible: name().length'
}]
});