新年快乐,我对knockoutjs if语句有以下问题。
我有以下
z.object = ko.observableArray(ko.utils.arrayMap([{"Id":3,"Date":"2014"}]))
<div data-bind="text: Date"></div>
以上打印正常,2014年但在if语句不起作用下面..发生了什么?
<!-- ko if: Date === 2014 -->
<!-- /ko -->
我对此感到非常困惑。
答案 0 :(得分:1)
标识(===
)运算符的行为与相等(==
)运算符的行为相同,但不进行类型转换,并且类型必须相同才能被视为相等。
因此,在您的陈述Date === 2014
中,此处Date
为tring而2014
为数字,则结果为false。
将字符串转换为数字,将数字转换为字符串或使用==
代替===
。
答案 1 :(得分:0)
简化示例似乎对我来说==,但不是===,请看这个小提琴:
<div data-bind="text: Date"></div>
<hr>
<!-- ko if: Date == 2014 -->
<h1>Oogah Chaka (==)</h1>
<!-- /ko -->
<hr>
<!-- ko if: Date === 2014 -->
<h1>Chaka (===)</h1>
<!-- /ko -->
var viewModel = {
Date: "2014"
}
ko.applyBindings(viewModel);