Knockoutjs:使用相同的viewModel属性绑定多个html元素

时间:2012-04-24 08:01:58

标签: javascript knockout.js

我想将单个viewModel的属性与两个html元素绑定,但它不起作用。它只是将模型的属性绑定到第一个元素。这样做的原因是我想要显示一个具有相同数据的表单(包括编辑和只读形式的视图)。 请建议是否有更好的方法来解决这个问题(轻松提供表单的编辑/只读视图)。

以下是我现在想做的事。

<span data-bind="text: name"/>
<input data-bind="value: name" />

1 个答案:

答案 0 :(得分:4)

问题是您的span尚未关闭。您无法使用<span/>,因为span不是void elements之一。 (自闭标签仅适用于不能包含任何内容的元素,例如<br/><input/>;您只需要其中的/作为XHTML,尽管它是允许在HTML中使用 [它只是毫无意义]。)因为span没有关闭,浏览器必须猜测你所指的span是什么意思;当KO设置了span的内容时,它会清除浏览器猜到的所有内容。

如果您正确关闭span,则有效:

<span data-bind="text: name"></span>
<input data-bind="value: name" />

Live example | source