绑定(bind) jQuery UI 的 Dialog 标题属性的最佳方法是什么?最初,在 ko.applyBindings
,KO成功更新title属性。但是,在 .dialog()
之后被调用,绑定(bind)丢失。
见 fiddle :http://jsfiddle.net/jordanarseno/YFBsQ/4/
我可以手动观察 keyup 的文本框并使用以下方法更改标题:
$("input").live("keyup", function(){
$("#dialog").dialog( "option", "title", $(this).val());
});
但是,如果可能的话,我想摆脱它并遵循更多的 knockout 惯例。
这里最好的方法是什么?问题是关于 title 属性,但理论上它可以应用于任何 Dialog 的选项......
最佳答案
您可以尝试使用自定义绑定(bind):
ko.bindingHandlers.ko_dialog = {
init: function (element, valueAccessor) {
$(element).dialog({title: ko.utils.unwrapObservable(valueAccessor())});
},
update: function (element, valueAccessor) {
$(element).dialog("option", "title", ko.utils.unwrapObservable(valueAccessor()));
}
};
并以这种方式调用它:
<div id="dialog" data-bind="ko_dialog: textboxinput">
我试图编辑你的 fiddle ,但由于某种原因它不能在 jsfiddle 上工作,但它可以在我的本地电脑上工作!试一试... http://jsfiddle.net/YFBsQ/31/
关于javascript - Knockout JS 和 jQuery UI Dialog 的 title 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224359/