2013-05-05 65 views
2

我需要的是只有当指定的表达式的计算结果为true时,才能将绑定应用于出现在我的文档中的一部分(并应用其数据绑定属性)。 我试图用slideUp/slideDown和可见的绑定来实现它。区别在于,对于slideUp/slideDown,包含的标记始终保留在DOM中并始终应用其数据绑定属性 - 可见绑定仅使用CSS来切换容器元素的可见性。我想我需要在DOM中物理添加或删除包含的标记,并且只有在表达式为true时才将绑定应用于后代。任何人都可以提出请这个问题的好方法。我可以在kendo UI中做条件绑定吗?

回答

5

据我所知,你想用绑定来修改HTML。为了达到这个目的,你可以使用HTML绑定。举例:

<div id="example"> 
    <input type="checkbox" data-bind="checked: value"/> 
    <div id="wrapper" data-bind="html: setHTML"></div> 
    <br /> 
    value: <span data-bind="text: value"></span> 
</div> 

var viewModel = kendo.observable({ 
    value: false, 
    name: "Jack", 
    setHTML: function (e) { 
     var flag = this.get("value"), 
      html; 
     if(flag) { //include the html 
      html = '<input id="name" data-bind="value: name" />'; 
      return html; 
     } else { //remove the html 
      return ""; 
     } 
    } 
}); 
kendo.bind($("#example"), viewModel); 

请注意,插入的HTML元素将不会绑定到视图模型。为了达到这个目的,你应该手动调用kendo.bind。

kendo.bind($("#wrapper"), viewModel); 

我希望这将解决方案适合您的情况。

相关问题