即使没有要在占位符中填充的数据,也要渲染模板

时间:2014-07-11 08:00:35

标签: javascript json rendering ejs

我正在使用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": ""}

这样的虚拟/空白JSON对象

但上述两种方法对我来说都不是很好。有没有更好的方法呢?请牢记使用inputselect和所有其他标记的大型表单。

1 个答案:

答案 0 :(得分:1)

雅三元方法似乎很干净 - <%= foo ? foo : '' %>。最好处理默认值,因为它缺少像_.defaults()下划线那样的属性。