我正在使用EJS模板来呈现表单。问题不是专门针对EJS,而是针对JavaScript的任何模板库。
说我的模板就像
<form>
<input type="text" name="foo" value="<%= foo %>" />
<input type="text" name="baz" value="<%= baz %>" />
</form>
将JSON对象传递给.render
方法,就像这样
tpl.render({foo: "bar", "baz": "qux"})
它填充相应输入框中的值并返回我们可以附加到容器的渲染标记。
现在我想做的是,即使我传递一个空白对象{}
,也应该渲染它。我的意思是,它应该返回输入框的空白值(空格式以添加内容)。
我知道我们可以使用类似if
的内联<%= (baz != undefined ? bax : "") %>
,也可以创建像{"foo": "", "baz": ""}
但上述两种方法对我来说都不是很好。有没有更好的方法呢?请牢记使用input
,select
和所有其他标记的大型表单。
答案 0 :(得分:1)
雅三元方法似乎很干净 - <%= foo ? foo : '' %>
。最好处理默认值,因为它缺少像_.defaults()
下划线那样的属性。