javascript - js脚本能否获取在同一文件内的EJS上下文/页面中写入的变量

标签 javascript scope ejs

正如我在标题中所写,我想从写入 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/

相关文章:

node.js - nodejs i18n __ 不是 ejs 的功能问题,表达

javascript - 如何正确排序我的评论/回复/对回复数据的回复

javascript - 函数没有返回值 : scope issue

java - 在我的 Java Servlet 中使用私有(private)类有什么问题吗?

javascript - 使用对象数组的所有字段进行字符串搜索

javascript - 无法使用 contentscript chrome 扩展将 iframe 添加到页面中

php - 在 PHP 中保护来自 "include pollution"的变量

node.js - Express Router CRUD 更新和删除数据

javascript - 向 jqGrid 添加下拉菜单

javascript - 如何在窗口关闭前弹出模式?