将数据绑定添加到表单会删除 html

Posted

技术标签:

【中文标题】将数据绑定添加到表单会删除 html【英文标题】:Adding with data binding to form removes html 【发布时间】:2013-08-22 06:19:25 【问题描述】:

我已经为以下问题苦苦挣扎了太久。我一直在网上搜索,但没有找到我的问题的答案。我有一个表格,我添加了一个带有数据绑定的表格。当我调用 ko.applyBindings(viewModel) 时,我没有收到任何错误,但里面的 html 被删除了。

我想要完成的是:

    我生成的 HTML 没有敲除 我正在根据已知的输入 ID 动态地将敲除绑定注入到 html。 我希望能够在顶层应用绑定,这将是我的表单,而不是添加每个单独的绑定。

代码

HTML
<form data-bind="with: form1">
<select data-bind="options: propertyNames, value: selectedProperty"></select>
<input data-bind="value: currentValue" />
<input data-bind="value: currentValue002" />
<button data-bind="click: setValue">Set Value</button>
<button data-bind="click: setValue2.bind($data, 'two', 'Jon')">Set two to Jon</button></form>


ViewModel:
<div data-bind="text: ko.toJSON($root.properties)"></div>
var viewModel = 
propertyNames: ["one", "two", "three"],
form1: ko.observable(),
properties: 
   one: ko.observable("Bob"),
   two: ko.observable("Ted"),
   three: ko.observable("Ann")
,
setValue: function() 
   this.properties[this.selectedProperty()](this.currentValue());   
,
setValue2: function(propName, value) 
    this.properties[propName](value);

;
ko.applyBindings(viewModel);

你可以在这里看到它:http://jsfiddle.net/cricri99/Hk6MB/2/

我还尝试将 data-bind="submit: form1" 添加到我的表单中,然后用带有 data-bind="with: test" 的 div 包围内部 HTML,但这也不起作用。它还删除了内部 HTLM。

【问题讨论】:

我尝试添加:&lt;!-- ko with: form1 --&gt; &lt;form&gt;&lt;/form&gt; &lt;!-- /ko --&gt; 但这没有帮助。我想知道form1 绑定它时会有什么价值——通常情况下,你会有类似&lt;form data-bind="with: object"&gt; &lt;imput data-bind="value: objectProp1" /&gt; &lt;/form&gt; 【参考方案1】:

请原谅这里的简洁...

我添加了form1: ko.observable(currentValue: currentValue),,它显示了表单。

但是,如果您想在根目录上使用变量,请使用:

<form data-bind="with: form1"><input data-bind="value: $root.currentValue" /></form>

【讨论】:

以上是关于将数据绑定添加到表单会删除 html的主要内容,如果未能解决你的问题,请参考以下文章

绑定多个表格的按钮

SpringMVC数据绑定与表单标签库

Knockout JS 如何将数据绑定到静态表单元素

将数据集动态绑定到 RDLC 报告

使用数据绑定从SAPUI5多输入字段中删除令牌

更改元素 ID 时 Datepicker 失去绑定