我在我的模板中使用了它:
{{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/