2017-04-04 90 views
-1

如何僅在函數返回true時綁定元素;綁定div如果函數返回true

<label class="hello" data-bind="if: myFunction">Hello World</label> 

function myFunction(n){ 
    if(n==2) return true; 
} 

它是可見的功能也返回false

+0

問題是否得到解決或您仍然無法使其正常工作? –

+0

我解決了可見綁定的問題 – Federico

回答

1

if結合應用於元素的內容。如果你希望元素本身消失,而不僅僅是其中的文本,你需要將標籤包裝在其他東西中,並將綁定應用於包裝。您也可以爲此使用虛擬綁定。

<--ko if: myFunction--> 
<label class="hello">Hello World</label> 
<!--/ko--> 

此外,對於您的函數來正確地更新它必須是一個計算的屬性,而不是一個正常功能,並n必須是可觀察的。

var n = ko.observable(); 
myFunction = ko.computed(function(){ 
    if(n()==2) return true; 
});