2017-04-04 58 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; 
});