正如我在标题中所写,我想从写入 ejs 页面/文件的变量中获取值,从同一页面中的 javascript 文件获取值
EJS:
<% var test = 101; %>
JS:
<script>
var getTest = test;
</script>
或者如果我想使用写入 EJS 文件的函数(带参数)并在 JS 上下文中使用此函数,其中参数从 JS 上下文中传递给函数怎么办
EJS:
<% function fn(par){ ... } %>
JS:
<script>
var test = 101;
<%>fn(test)<%>
</script>
最佳答案
编辑:这一半认为您在服务器端使用EJS
1) You can pass an ejs variable value to a Javascript variable
<% var test = 101; %> // variable created by ejs
<script>
var getTest = <%= test %>; //var test is now assigned to getTest which will only work on browsers
console.log(getTest); // successfully prints 101 on browser
</script>
只需创建一个 ejs 变量并将脚本标记内的值分配给 var getTest
例如:var getTest = <%= test %>;
2) You can't pass an javascript variable value to a ejs variable
是的,你不能:如果它在服务器上。
原因:
EJS 模板将在 Javscript 开始执行之前在服务器上呈现(它将在浏览器上启动),因此没有办法返回到服务器并要求对已发送到的页面进行一些先前的更改浏览器。
编辑:这一半认为您在客户端端使用EJS
3) if EJS is on client side, and pass EJS variable to javascript
上面的答案仍然有效,但您将需要在 EJS 模板中加载脚本,而不是在呈现模板之前加载的脚本(在这种情况下它当然不会是有效的 javascript)。
4) if EJS is on client side, and pass javascript variable to EJS
很抱歉,我自己没有尝试过这个案例,但我真的很期待有人能回答这个案例
关于javascript - js脚本能否获取在同一文件内的EJS上下文/页面中写入的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603658/