我有一个 html 表格,以 Knockout 为界:(例如,只是表格的一部分)
<tbody>
<!-- ko foreach: users -->
<tr><td valign="top"><span data-bind="text: name ? name : ' '"></span></td></tr>
<!-- /ko -->
</tbody>
问题是三元表达式不能正常工作,它总是表现得像name
不是NULL
,即使它是NULL
,第一部分始终在执行。
我做错了什么?
最佳答案
如果 name
是一个可观察对象,它永远不会是假的;您必须调用它: text: name() ?名称():' '
。如果它们不是表达式的一部分,KO 只会自动为你调用它们。如果 name
不是可观察的,则在您更改它时不会重新评估绑定(bind)。
另请注意,您可以使用 JavaScript's curiously-powerful ||
operator 避免调用它两次。 *:文本:名称()|| ' '
.
* (这是我贫血的小博客上的帖子。)
关于javascript - 三元表达式始终为真 - 不为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43834372/