2013-07-08 64 views
4

我使用敲除動態地將內容加載到頁面的各個部分,使用HTML綁定。敲除與另一個綁定內部的HTML綁定

問題是,我想要綁定的HTML必須調用函數onclick,而且我需要有關目標和數據的信息,以便輕鬆發送。

是這樣的:

myFunction($parent, $data) 

HTML:

<table> 
    <tbody data-bind="foreach: rows" > 
     <tr> 
      <td data-bind="html: rowValue">this will be a link</td> 
     </tr> 
    </tbody> 
</table> 

後來我將該值設置爲與淘汰賽中綁定的鏈接:

rowValue("<a href='#' data-bind=click:alert('hello')" + result.Data + "</a>"); 

請檢查fiddle here查看完整的工作代碼。

你可以看到我寫的兩行之間的區別,如果我做了一個javascript onclick它的作品,但顯然ko是缺少後期綁定。

我見過很多關於這方面的問題,但找不到一個有明確答案的問題。

我想用KO來做這件事,怎麼做到這一點呢? 與模板可能?

回答

3

KO在調用ko.applyBindings時應用綁定。 所以如果你在applyBindings被調用後修改了dom。 KO不會意識到新的dom元素。

您可以使用模板這樣:

<table> 
    <tbody data-bind="foreach: sitesTable.rows" > 
     <tr data-bind="foreach: row"> 
      <td data-bind="template: 'myTemplate' "></td> 
     </tr> 
    </tbody> 
</table> 

<br/> 


<a href="#" onclick="getNewData()"> click here </a> 
<script id="myTemplate" type="text/html"> 
    <a href='#' data-bind="html: cellValue, click: openAlert"> click </a> 
</script> 

編輯由毛裏齊奧。使用這個小提琴作爲其他鏈接似乎被打破: See fiddle

+0

感謝您的代碼模板轉換。模板應該完成我需要還是不需要?因爲你的小提琴沒有這樣做。我修改它的工作,但仍然模板中的數據綁定似乎被忽略 –

+0

其實我設法修復你的小提琴:http://jsfiddle.net/MaurizioPiccini/QfLxM/13/如果你可以更新你的代碼我會接受你的答案讓別人看到。 –

+0

我很高興聽到這是幫助。 – Damien