檢查ejs模板中未定義屬性的最佳方法是什麼?如何檢查ejs中的未定義屬性是否爲node.js?
(我使用的是node.js package由TJ Holowaychuk)
例子:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
我期望這使 「富未定義」。它確實會拋出一個foo undefined錯誤。
我知道這不應該是一個問題,因爲這是預期的行爲in the tests。有沒有簡單的方法來避免這種情況?
我發現的唯一解決方案是使用hasOwnProperty
方法。
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
這不會產生任何錯誤。
有沒有更好的方法來保持模板清潔?或者爲什麼會拋出這個錯誤?
這就是我想要的。 :) – pvorb
正是我所需要的,但跆拳道,爲什麼你必須這樣做?! :) –
不確定沒有檢查源,但我懷疑模板引擎不打擾範圍變量的未定義值。 –