KnockoutJS可见绑定

时间:2012-03-16 11:17:32

标签: knockout.js

JsFiddle:http://jsfiddle.net/fPsK6/2/

为什么visible绑定不起作用?

1 个答案:

答案 0 :(得分:2)

因为IsDefault属性的值是字符串,所以总是评估为true。唯一不评估为true的字符串是空字符串。

这是一个updated working fiddle

在那个版本中,我只是删除了数字周围的引号(所以它们实际上是数字,而不是字符串)。数字1评估为true,数字0评估为false。您当然可以使用文字布尔值而不是数字(或适当评估为truefalse的任何其他值)。

更新(见评论)

由于您的数据来自服务器而您无法更改,因此您可以将字符串转换为data-bind属性值中的数字:

<span data-bind="visible: +payload.IsDefault()">

请注意,您需要将IsDefault作为函数调用,而不是仅仅提供对函数的引用。另请注意使用unary plus operator,它将字符串转换为数字。

这是另一个updated fiddle