【发布时间】:2019-10-26 04:31:22
【问题描述】:
我正在使用 jQuery 将一些 html 附加到 div:
public/js/writeInputs.js
$("#myDiv").append("<input type='search' value='<%= filters.title %>' name='filters[title]' class='form-control'>")
在这种情况下,filters 是我从我的 node express 后端传递的一个对象,我想在我的输入中显示它的值。但是,上面将ejs 变量呈现为字符串文字:
<%= filters.title %>
如果我将此值硬编码到 html 中,它会按预期工作:
views/partials/inputs.ejs
<input type="search" name="filters[title]" value="<%= filters.title %>" class="form-control">
如何在 jQuery 中编写 ejs 变量?
我已经在我的附录中尝试了这些方法,但都没有奏效:
value="<%= filters.title %>"
value=${<%= filters.title %>}
value='"<%= filters.title %>"'
【问题讨论】:
-
你的代码是ejs文件还是普通js文件?
-
append出现在js文件中,但它出现的元素是ejs模板 -
您是否记得要确保
writeInputs.js不会从您的公共目录中获取静态资产,而是具有自己的 GET 路由功能,以便您的服务器可以加载在文件中并使用respond.render(...)回复? -
看看this answer。您可以在浏览器中使用 ejs 值声明该变量,它将可用于 jquery。
-
您正在使用服务器以使用
ejs语法呈现页面。任何具有 ejs 语法的文件都需要以这种方式提供服务,它们不能只是放在静态/公共目录中并由用户直接从该文件加载。writeInputs.js的 URL 请求需要转到实际的服务路线(如app.get('writeInputs.js', ...),如果您使用的是 express),并且如果您希望您的 ejs 语法被替换,您必须使用 ejs 渲染.
标签: javascript jquery node.js ejs