gpt4 book ai didi

javascript - 您将如何在 ejs 中为 node.js 检查未定义的属性?

转载 作者:IT老高 更新时间:2023-10-28 21:59:19 26 4
gpt4 key购买 nike

在 ejs 模板中检查未定义属性的最佳方法是什么?

(我使用的是 TJ Holowaychuk 的 node.js package)

例子:

var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));

我希望这会呈现“foo undefined”。它确实会引发 foo undefined 错误。

我知道这不应该是一个问题,因为这是预期的行为 in the tests .有没有简单的方法可以避免这种情况?

我找到的唯一解决方案是使用 hasOwnProperty 方法。

var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));

这不会引发任何错误。

有没有更好的方法来保持模板干净?或者为什么会抛出这个错误?

最佳答案

另一种测试属性的方法是通过 locals 对象间接引用它。使用您的示例:

var tpl = '<% if(locals.foo){ %>foo defined<% }else{ %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));

关于javascript - 您将如何在 ejs 中为 node.js 检查未定义的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7289916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com