Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干、JST、EJS:模板中的空白值_Backbone.js_Ejs_Jst - Fatal编程技术网

Backbone.js 主干、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中,确保变量字段返回空白而不是失败的最优雅的方法是什么 干杯…我

我有一个用于“项目”表单的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