2017-04-12 69 views
1

我有以下幾點:使用jQuery綁定MVVM數據源

<div class="container" data-bind="source: content" data-template="content-template"></div> 

在JS,我要動態地添加更多的DIV的(更好:克隆.container DIV)和更改數據綁定源內容2,content3 ...

基本上,我想這一點:$(".question.clone2").data("source", content2) ...

什麼是正確的語法是什麼?

回答

0

$(document).ready(function(){ 
 
    var clone = $('.container').first().clone();//clone first container div 
 
    (clone).insertAfter('.container'); // inser clone after last container div 
 
    var length = $('.container').length; // get how many container divs are there 
 
    $('.container').last().attr('data-bind',"source: content"+length+""); //change last container div data-bind value (in autoincremeneted fashion like content2,content3,....) 
 
});
.container{ 
 
    float:left; 
 
    width:40%; 
 
    height:200px; 
 
    background:grey; 
 
    padding:10px; 
 
    margin:20px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container" data-bind="source: content" data-template="content-template"></div>

+0

感謝,但如上面我的問題的答案不是克隆,但數據源到div的結合。我用$(clone).data(「source」,「content2」)試了一下。但沒有任何反應 – Clemens

+0

@Clemens現在檢查 –

+0

我可以看到綁定顯然工作,因爲我可以通過$(「clone」)獲取綁定的源。attr('data-bind');現在看起來該模板並不知道源已被更新,因爲它尚未被繪製。我是否必須手動觸發任何事件? – Clemens

0

試試這個:

var clone = $('.container').clone(); // use .first() if there are more then one .container class 

$(clone).data("source", "content2");