我们可以将JavaScript变量值分配给EJS变量吗?
我试图将JS变量值放入同一页面中的EJS变量中我们可以将JavaScript变量值分配给EJS变量吗?,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我试图将JS变量值放入同一页面中的EJS变量中 <script> var i = 22; document.getElementById('abcd').innerHTML = i; <% ejsVar %> = i; </script> var i=22; document.getElementById('abcd')。innerHTML=i; =i; 这是不可能的,因为在将页面发送到客户端之前会对EJS模板进行评估。为了简单地
<script>
var i = 22;
document.getElementById('abcd').innerHTML = i;
<% ejsVar %> = i;
</script>
var i=22;
document.getElementById('abcd')。innerHTML=i;
=i;
这是不可能的,因为在将页面发送到客户端之前会对EJS模板进行评估。为了简单地表示流程,它如下所示:
服务器:运行Node.js->评估脚本->运行EJS(评估模板)->发送到浏览器->客户端:评估HTML并运行JavaScript代码
可以通过给渲染器对象赋值,在服务器端为EJS变量赋值:
let ejs = require('ejs');
let scope = {};
// Assign a value to an EJS variable
scope.ejsVar = "Hello world!";
// Render the template using the scope
let html = ejs.render('Var: <%= ejsVar %>', scope); // "Var: Hello world!";
让ejs=require('ejs');
让作用域={};
//为EJS变量指定一个值
scope.ejsVar=“你好,世界!”;
//使用作用域呈现模板
让html=ejs.render('Var:',scope);//“你好,世界!”;
因此,EJS将在页面交付到浏览器之前在服务器上运行。服务器在
中填充内容后,
标记内的Javascript将在浏览器中运行。所以,这似乎不太可能满足你的要求。但是,对于任何帮助你的人来说,你需要描述一下你正在努力实现的目标。这里的问题应该描述您真正的问题,而不仅仅是您试图编写代码时遇到的问题。是的,标记将在服务器已填写内容后在浏览器中运行。仍然不知道您试图完成什么。我已经在代码中使用了
。我有一个onclick函数,调用时,js变量值应该分配给该ejs变量@JFriend00您似乎不明白,在页面进入浏览器之前以及在任何onclick可以处理之前,EJB已经在服务器上处理很久了。浏览器中没有EJ。在
标记中定义自己的Javascript变量并分配给该变量。