【发布时间】:2019-07-20 12:39:59
【问题描述】:
我有一个相当奇怪的问题。 在服务器端,我调用了一个 ejs-page by
res.render('index', {varArray: JSON.parse(response)});
当我尝试在 HTML 代码中使用变量“varArray”时,一切正常,例如:
<% for (var i = 0; i < varArray.length; i++) { %>
<option value="<%= varArray[i].id %>"><%= varArray[i].name %></option>
<% } %>
但是:当我想在同一页面上的函数中使用相同的变量时,我会收到一条错误消息,指出该变量未定义。
<body>
<script>
function test() {
for (var i = 0; i < varArray.length; i++) {
// do something
}
};
</script>
希望有人能帮帮我。
【问题讨论】:
-
看起来您正在尝试混合客户端和服务器端代码。在客户端上运行的代码无法访问服务器上声明的变量。
-
把它放在 DOM 中的某个地方(就像一个隐藏的输入),并在运行时取出值。您正在尝试混合客户端和服务器运行时。
-
要进行客户端操作,您真的应该在 Vue.js、Angular 或 React 上投入一些时间。这些都是允许您将 JS 代码与 DOM 集成的框架(当然不是您拥有的方式)。
标签: javascript node.js express ejs