如何使用Knockout绑定javascript对话框



我在observableArray中有一个数据列表,我想在javascript对话框窗口中显示它(如果重要的话,我会使用jQuery.blockUI)。不幸的是,加载页面后,对话框似乎未绑定。对话框会正确初始化(显示数据),但不会随更改而更新。

没有Javascript错误,在对话框生成并添加到文档中之后,我已经将绑定移动到(没有效果)。我也尝试过在组成对话框的主div上调用ko.applyBinding,但由于某种原因,这会导致主页面的一部分隐藏(DOM在那里,但它们是隐藏的)。

编辑:我在jsfiddle上创建了一个项目来重现这个问题。罪魁祸首似乎是将对话框的内容包装在div中。如果我直接显示内容,它似乎可以工作(当然我不能这样做,包装器为我们的对话框提供了一种常见的样式)。

我正在从流感中恢复,很容易错过一些明显的东西,但我已经尝试了一整天,但什么都没有。有什么想法吗?

问题是DOM中不存在对话框(尽管您调用了$(document).append()。您不能将div附加为文档本身的子级)。相反,将对话框附加到正文并隐藏它。

$dlg = $('<div></div>').hide();
$('body').append($dlg);

在此处工作:http://jsfiddle.net/yL6ds/4/

最新更新