0

更新我已将代码移至 jsFiddle http://jsfiddle.net/TnSV6/13/

edit被调用时,模型设置为视图模型并打开对话框。但是,当save或被undo调用时,模式设置为 null 但对话框不会关闭。

如果我在 jqDialog 处理程序中明确使用 jquery 来使取消链接和 ajax 完成事件关闭对话框,我可以完成这项工作,但这感觉有点骇人听闻,因为jqDialog.update应该管理打开/关闭。

似乎没有开始将呼叫转移到jqDialog.update()。但我不确定这是在哪里被阻止的。

4

1 回答 1

1

是的,我上面说的实际上是问题所在。在你with的 observable 里面已经被解包了,所以你只是在处理SettingShipmentDate.workOrder. 自定义绑定不知道持有它的实际可观察​​对象。

一个简单的解决方法就是这样写:

<!-- ko with: SettingShipmentDate.workOrder -->
<div data-bind="jqDialog: $parent.SettingShipmentDate.workOrder, dialogOptions: {close: $root.SettingShipmentDate.undo}" data-title="Set Shipment Date">

现在您的绑定被传递给 observableworkOrder而不仅仅是它的内容,并且您在绑定update函数中所做的展开将能够创建依赖项。

示例:http: //jsfiddle.net/rniemeyer/Y4JbP/

否则,您可以对其进行一些重构,以将with语句移到div它的内部或内部。虽然,with目前正在防止值为空。

于 2012-12-15T15:18:01.753 回答