更新我已将代码移至jsFiddle http://jsfiddle.net/TnSV6/13/
当调用edit
时,模型被设置为视图模型并打开对话框。但是,当调用save
或undo
时,模态设置为null但对话框不会关闭。
如果我在jqDialog处理程序中明确使用jquery来使取消链接和ajax完成事件关闭对话框,我可以使这个工作,但这感觉有点hackish因为jqDialog.update
应该管理打开/关闭。 / p>
似乎呼叫未开始转发到jqDialog.update()
。但我不知道在哪里被阻止。
答案 0 :(得分:1)
是的,我上面说的实际上是问题。在你的with
内部,observable已经被打开,所以你只是在处理SettingShipmentDate.workOrder
的内容。自定义绑定不知道持有它的实际observable。
一个简单的解决方法就是把它写成:
<!-- ko with: SettingShipmentDate.workOrder -->
<div data-bind="jqDialog: $parent.SettingShipmentDate.workOrder, dialogOptions: {close: $root.SettingShipmentDate.undo}" data-title="Set Shipment Date">
现在你的绑定传递了可观察的workOrder
而不仅仅是它的内容,你在绑定的update
函数中做的解包将能够创建依赖。
示例:http://jsfiddle.net/rniemeyer/Y4JbP/
否则,您可以稍微重构一下,将with
语句移到div
或其内部。虽然,with
目前正在保护该值为null。