2013-12-13 37 views
0

我是新來敲除圖書館,我們正在研究一個iPad應用程序。 這種情況是,當用戶選中HTML頁面中的複選框時,我們需要在頁面中添加一個新的div,其中包含一些文本框,並在取消選中時刪除它。在頁面重新加載後使用Knockout.js,HTML和JS創建新的html元素後綁定事件?

需要注意的點: 新的div綁定到需要在文本框中默認加載或選擇的數據。

它是一個Ipad網絡應用程序。 它使用了MVVM的knockout,jquery,js和HTML。

的問題是:

頁面加載後能否淘汰賽綁定HTML元素,如自定義的處理工作/只在初始化註冊自己,並且可以動態的div使用JS和HTML創建,如果是,那麼如何把它兩個靜態div之間?

如果你能指導我通過這個ASAP將是非常有幫助的。

回答

1

可以綁定使用ko.applyBindings(視圖模型,ElementSelector)頁面加載後的元素,就像這樣:

ko.applyBindings(myModel, $("#myDiv")); 

然而,這是不是你通常想要做的事。在Knockout中使用If綁定會更容易,它會動態添加或刪除頁面中的子元素。

<input type="checkbox" data-bind='checked: showChild' /> 
<div id="container" data-bind="if: showChild"> 
    <!-- stuff here will only be generated if the checkbox is selected --> 
</div> 

如果你有多個不同的元素基礎上的東西值顯示,說一個選擇列表,你可以使用模板功能來代替:

//viewmodel properties 
self.Options = ko.observableArray(["Name", "Age", "Height"]) 
self.TemplateToUse = ko.observable() 


//html 
<select data-bind="options: Options, value: TemplateToUse"> 
</select> 

<div data-bind='template: { name: TemplateToUse }'> 
    <!-- template whose name is selected value --> 
</div> 

//templates 
<script type="text/html" id="Age"> 
    <span>Age</span> 
</script> 

<script type="text/html" id="Name"> 
    <span>Name</span> 
</script> 

<script type="text/html" id="Height"> 
    <span>Height</span> 
</script> 
+0

感謝@SarahBourt,我很期待實施它,從來不知道模板在淘汰賽。我將其標記爲答案。 – Parshii

+0

乾杯。如果您還沒有,請前往http://knockoutjs.com/documentation/introduction.html上的Knockout.js的文檔部分。Knockout有很棒的文檔:) –

+0

我知道。謝謝@SarahBourt我會繼續這樣做。 – Parshii

相關問題