2013-08-20 72 views
0

我是新來的knockoutJS,所以請和我一起裸照。以下問題一直困擾我太久。我一直在網上搜索,我還沒有找到我的問題的答案。我有一個我添加了數據綁定的表單。當我調用ko.applyBindings(viewModel)時,我沒有收到任何錯誤,但HTML裏面被刪除。KnockoutJS:使用數據綁定添加形式可以刪除html

我試圖做到的是以下幾點:

  1. 我有一個生成的HTML有沒有擊倒
  2. 我動態注入基於已知輸入IDS淘汰賽綁定到HTML。
  3. 我希望能夠在頂層應用綁定,這將是我的表單,而不是添加每個單獨的綁定。

代碼

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/

我也嘗試添加數據綁定= 「提交:Form1的」 我的表格,然後圍繞內HTML與數據綁定=「與:測試」的股利,也沒有工作。它也刪除了內部的HTLM。

預先感謝您!

+0

我嘗試添加: '<! - KO搭配:Form1的 - >

'但是這並沒有幫助。我想知道'form1'綁定它時會有什麼價值 - 通常情況下,你會有類似於
' – Cody

回答

0

對不起這裏的簡潔...

我加入form1: ko.observable({currentValue: currentValue}),,它顯示的形式。

不過,如果你想在根使用變量,使用:

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