Knoct out模板绑定 - 在运行时更改数据源并重新绑定模板 [英] Knoct out template binding - changing datasource at runtime and rebind template

查看:129
本文介绍了Knoct out模板绑定 - 在运行时更改数据源并重新绑定模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <   script    类型  =  text / html     id   =  person-template >  
< tr > < td >
< p > 书名:< h3 data-bind = text:title > < / h3 >
< p > 可用城市:< span data-bind = text:CityName > < / span > < / p >
< / td > < / tr >
< / script >


< table id = sample >
< tbody id = list data-bind = 模板:{name:'person-template',foreach:people} > ;
< / tbody >
< / table >


jQuery(document).ready(function(){

var loData = AjaxCall('default.aspx' ,'GetBookData','10');
var Data = JSON.parse(loData.Data);

函数MyViewModel(){
this.people = Data.Table
}
ko.applyBindings(new MyViewModel());

});


$(#btnChangData)。click(

var loData = AjaxCall('default.aspx','GetBookData','20');
var Data = JSON.parse(loData.Data);

ko.cleanNode($(#list)[0]);
$('#sample' ).empty();
$('#sample')。html('< tbody id = list data-bind = template:{name: person-template, < span class =code-attribute> foreach: } > < / tbody > ');
函数MyViewModel(){
this.people = Data.Table
}
ko.applyBindings(new MyViewModel());

);









I将文档就绪函数加载到表中。但是在按钮单击事件中我需要将新数据源加载到表中,如何将数据源重新绑定到敲除模板..在上面的单击事件中抛出

您不能多次将绑定应用于同一元素

控制台错误..



我尝试过:



i将解释所有问题

解决方案

(#btnChangData)。click(

var loData = AjaxCall('default。 aspx','GetBookData','20');
var Data = JSON.parse(loData.Data);

ko.cleanNode(


( #列表)[0]);

( '#样品')空();

<script type="text/html" id="person-template">
 <tr><td>
       <p>Book Title: <h3 data-bind="text: Title"></h3>       
       <p>Available City: <span data-bind="text: CityName"></span></p>
</td></tr>
</script>


<table id="sample">					
<tbody id="list" data-bind="template: { name: 'person-template', foreach: people }" >
</tbody>                                
</table>


  jQuery(document).ready(function () { 
      
        var loData = AjaxCall('default.aspx', 'GetBookData', '10');
        var Data = JSON.parse(loData.Data);

        function MyViewModel() {
            this.people = Data.Table
        }
        ko.applyBindings(new MyViewModel()); 
       
    });
	
	
	$("#btnChangData").click(
	
        var loData = AjaxCall('default.aspx', 'GetBookData', '20');
        var Data = JSON.parse(loData.Data);           
        
        ko.cleanNode($("#list")[0]);
        $('#sample').empty();
        $('#sample').html('<tbody id="list" data-bind="template: { name: "person-template", foreach: people }" ></tbody>');
        function MyViewModel() {
            this.people = Data.Table
        }
        ko.applyBindings(new MyViewModel());
		
		);





I have load data on document ready function to table. but in button click event i need to load new datasource to table, how can rebind datasource to knockout template.. in click event above code throws

You cannot apply bindings multiple times to the same element

error on console..

What I have tried:

i will explain everything in question

解决方案

("#btnChangData").click( var loData = AjaxCall('default.aspx', 'GetBookData', '20'); var Data = JSON.parse(loData.Data); ko.cleanNode(


("#list")[0]);


('#sample').empty();


这篇关于Knoct out模板绑定 - 在运行时更改数据源并重新绑定模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆