我的代码基于这个例子
http://jsfiddle.net/rniemeyer/WpnTU/
当您选择一个项目时,我希望对话框的标题具有可观察的值
我设法通过创建另一个自定义绑定来做到这一点
ko.bindingHandlers.dialogOptions = {
update: function(element, valueAccessor) {
var options = ko.utils.unwrapObservable(valueAccessor());
if (options ) {
$(element).dialog(options);
}
}
}
为 viewmodel 添加了一个新的 observable 并在选择项目时设置它
this.selectProduct = function(product) {
self.dialogOptions({ title: product.name() });
self.selectedProduct(product);
}
工作示例:http: //jsfiddle.net/WpnTU/76/
它可以工作,但我不喜欢它,它添加了一个与 GUI 非常耦合的新 observable,如果我可以使用已经退出的 selectProduct observable 并指出 GUI 中的 name 属性,例如 { title:选择产品名称 }