2012-03-16 73 views

回答

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

+0

謝謝。我從服務器獲取JSON數據,所有值都是字符串: '{「root」:[{「payload」:{「Name」:「AAA」,「IsDefault」:「1」}},...]}'那麼將某些字段從「字符串」轉換爲「int」的最佳方法是什麼? – Lari13 2012-03-16 11:28:30

+0

@ Lari13 - 查看我的更新。 – 2012-03-16 11:34:05

+0

感謝您的回答! :) – Lari13 2012-03-16 11:38:41