2017-04-12 43 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");