ejsテンプレートで未定義のプロパティをチェックする最良の方法は何ですか?node.jsのejsで未定義のプロパティを調べるにはどうすればよいですか?
(私はTJ Holowaychukでnode.js packageを使用しています)
例:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
私は、これは "未定義foo" をレンダリングするために期待したいです。代わりに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
ちょうど私が必要としたものだが、何故、これをやらなければならないのか? :) –
ソースを確認せずに確かに、私はテンプレートエンジンが未定義の値のスコープ変数に気にしないと思う。 –