如何使用Knockout绑定javascript对话框?

时间:2012-04-02 21:39:15

标签: javascript knockout.js

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

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

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

我正在从流感中恢复,很容易遗漏一些明显的东西,但我一整天都在努力,没有任何事情发生在我身上。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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

在这里工作: http://jsfiddle.net/yL6ds/4/