Backbone.js 主干、JST、EJS:模板中的空白值
我有一个用于“项目”表单的JST-->EJS主干模板。理想情况下,我希望在创建和编辑模型时使用相同的模板 目前,我在模板中有如下内容:Backbone.js 主干、JST、EJS:模板中的空白值,backbone.js,ejs,jst,Backbone.js,Ejs,Jst,我有一个用于“项目”表单的JST-->EJS主干模板。理想情况下,我希望在创建和编辑模型时使用相同的模板 目前,我在模板中有如下内容: <input type='text' name='demo_field' value='<%= demo_field %>' /> 只要demo_字段有一个值,它就可以正常工作,但如果没有,整个表单就会失败,并出现一个未捕获的引用错误 那么,在主干网…或JST…或EJS中,确保变量字段返回空白而不是失败的最优雅的方法是什么 干杯…我
<input type='text' name='demo_field' value='<%= demo_field %>' />
只要demo_字段有一个值,它就可以正常工作,但如果没有,整个表单就会失败,并出现一个未捕获的引用错误
那么,在主干网…或JST…或EJS中,确保变量字段返回空白而不是失败的最优雅的方法是什么
干杯…我可能会成为一个助手,因为javascript没有任何好的方法来做类似的事情
字段,如果字段?
在CoffeeScript中
将类似这样的内容放入助手函数:
function printIfExists(field) {
return (typeof field !== "undefined" && field !== null) ? field : '';
}
并在模板中调用它。容易极了
您可能还希望使用备用函数
声明:
var printIfExists = function(field){...}
我已经用咖啡脚本很久了,我想不起来为什么。。。前一个例子可能存在范围界定问题。你好,沃尔斯通-谢谢你的想法。不幸的是,我似乎无法将字段传递给助手。如果字段不存在,则在将字段传递给帮助器时抛出“uncaughtreferenceerror”。例如:如果my_字段未定义,在到达printIfExists函数之前抛出引用错误如果您没有被EJS卡住(我在另一篇文章中注意到您在其他地方使用了coffescript),我建议改用ECO,这样您就可以在JST中获取coffescript。。然后您可以执行
fieldif-field?
老实说,我发现在我自己的项目中,将整个主干对象传递到jst最有用,因此我使用@myModel.get'myfield'
调用我的字段,如果该字段不存在,主干只返回null