在 ejs 模板中检查未定义属性的最佳方法是什么?
(我使用的是 TJ Holowaychuk的node.js 包)
例子:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
我希望这会呈现“foo undefined”。它确实会抛出一个foo 未定义的错误。
我知道这不应该是一个问题,因为这是测试中的预期行为。有没有一种简单的方法可以避免这种情况?
我找到的唯一解决方案是使用该hasOwnProperty
方法。
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
这不会引发任何错误。
有没有更好的方法来保持模板清洁?或者为什么会抛出这个错误?