¿Cuál es la mejor manera de verificar una propiedad no definida en una plantilla ejs?¿Cómo verificaría la propiedad indefinida en ejs para node.js?
(estoy usando el node.js package por TJ Holowaychuk)
Ejemplo:
var tpl = '<% if (foo) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz" } }));
yo esperaría que esto render "foo indefinido". Lanza un error foo undefined en su lugar.
Sé que esto no se supone que sea un problema, ya que este es el comportamiento esperado in the tests. ¿Hay alguna manera fácil de evitar esto?
La única solución que encontré es usar el método hasOwnProperty
.
var tpl = '<% if (hasOwnProperty("foo")) { %>foo defined<% } else { %>foo undefined<% } %>';
console.log(ejs.render(tpl, { locals: { bar: "baz"} }));
Este no lanza ningún error.
¿Hay alguna manera mejor de mantener la plantilla limpia? ¿O por qué arroja este error?
Esto es lo que quería. :) – pvorb
Justo lo que necesitaba, pero, ¿por qué tienes que hacer esto? :) –
No estoy seguro sin consultar la fuente, pero sospecho que el motor de la plantilla no se molesta en buscar variables para valores indefinidos. –