Javascript 三元表达式始终为真-不为空
我有一个html表,以Knockout为边界:(例如,只是表的一部分)Javascript 三元表达式始终为真-不为空,javascript,knockout.js,Javascript,Knockout.js,我有一个html表,以Knockout为边界:(例如,只是表的一部分) 问题是三元表达式工作不正常,它总是像name不是NULL,即使它是NULL,第一部分也总是在执行 我做错了什么?如果名称是可观察的,它永远不会是虚假的;您必须调用它:text:name()?name():''。KO只会在它们不是表达式的一部分时自动为您调用它们。如果name不可观察,则如果更改绑定,则不会重新评估该绑定 还请注意,使用*:text:name()| |“”可以避免两次调用它 *(这是我贫血小博客上的一篇帖
问题是三元表达式工作不正常,它总是像name
不是NULL
,即使它是NULL
,第一部分也总是在执行
我做错了什么?如果
名称
是可观察的,它永远不会是虚假的;您必须调用它:text:name()?name():''
。KO只会在它们不是表达式的一部分时自动为您调用它们。如果name
不可观察,则如果更改绑定,则不会重新评估该绑定
还请注意,使用*:text:name()| |“”
可以避免两次调用它
*(这是我贫血小博客上的一篇帖子。)应该注意,这是一个三元表达式,不是if语句。请注意,您缺少一个分号,应该是“”@T.J.Crowder非常感谢,是这样的,我不知道我怎么会错过它。。你想把它写下来作为答案,这样我就可以接受了吗?非常感谢!就是这样!谢谢你的解释和想法!!
<tbody>
<!-- ko foreach: users -->
<tr><td valign="top"><span data-bind="text: name ? name : ' '"></span></td></tr>
<!-- /ko -->
</tbody>