2013-05-05 47 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); 

我希望這將解決方案適合您的情況。