jQuery tmpl {{if}} 条件为 false 不起作用

标签 jquery json knockout.js jquery-templates

我在我的模板中使用了它:

{{if !IsDefault}}
    <a href="#" onclick="makeDefault('${Id}');return false;">Make Default</a>
{{/if}}

除非IsDefault为假,否则它不起作用。我什至尝试过:

{{if IsDefault === false}}` and `{{if IsDefault == false}}

我已经验证传递给模板的 json 对象中的值实际上是 false。

我也尝试过这个,它可以工作,但是非常丑陋,我更希望它能够正常工作:

{{if IsDefault}}
{{else}}
    <a href="#" onclick="makeDefault('${Id}');return false;">Make Default</a>
{{/if}}

此外,如果我更改它以检查真实条件(没有意义,但只是为了调试目的而尝试)...

{{if IsDefault}}

...效果很好。看起来它只是存在错误值的问题。我通过 jQuery ajax 调用获取 json,并使用 jquery tmpl 进行 knockout 映射。我没有收到 js 错误。

关于为什么 false!false 测试不起作用的任何想法?

最佳答案

尝试使用{{if !(IsDefault())}}

如果您使用的可观察量不在表达式中,则 jQuery 模板会认为它是一个函数,并将其作为函数调用以获取可观察量的值。如果它在表达式中,则不会发生这种情况,您需要将可观察量作为函数(不带参数)调用以获取其值。

关于jQuery tmpl {{if}} 条件为 false 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6824931/

相关文章:

javascript - 每当将链接鼠标悬停在任意页面上时调用函数?

iphone - 将 JSON 格式的 NSString 转换为 NSMutableDictionary

c# - 如何将 JSON 映射到 C# 对象

javascript - knockout 自动增长绑定(bind)删除更改事件绑定(bind)

javascript - d3 淡化未连接节点的图标

javascript - 使用 Ajax 分页时缺少元素(Facebook Like 按钮)

javascript - AJAX 做了我需要它做的事情,但仍然出现错误

json - 如何在 Spring Boot 中覆盖默认的 JSON 响应

javascript - 未捕获的类型错误 : Cannot convert a Symbol value to a string

javascript - knockoutjs 在 with 中调用 click 方法