【问题标题】:Get the data passed to an ejs file in an included js file在包含的 js 文件中获取传递给 ejs 文件的数据
【发布时间】:2017-02-16 07:14:56
【问题描述】:

我正在使用 express js 并使用渲染文件

res.render('plain',{state:'admin'})

其中 plain.ejs 是一个 ejs 文件。该文件有一个包含 main.js

<script src ="/main.js"></script>

如何访问 main.js 文件中的状态变量,请帮助!!!

【问题讨论】:

    标签: javascript node.js express ejs


    【解决方案1】:

    你不能直接。 但你可以这样做:

    plain.ejs

    <script>
    var state = {{ state }};
    </script>
    <script src ="/main.js"></script>
    

    然后在 main.js 中

    console.log(state);
    

    【讨论】:

    • 我试过了,但我得到一个错误 Uncaught Syntax error : Unexpected token {
    • ejs 的分隔符是什么?
    • 明白了!分隔符是 并且我使用了 var state = 现在我可以在 main.js 中使用它,非常感谢!
    • 嘿。我在 var state = {{ state }};请帮帮我
    【解决方案2】:

    可能是肮脏的解决方案,但您可以在全局范围内创建状态变量,并且 main.js 将能够访问它:

    <script type='text/javascript'>
        var state = '<%= state%>'
    </script>
    
    <script src ="/main.js"></script>
    

    如果您有更多数据要传递给客户端,您可以将其作为对象传递:

    res.render('plain',{data: {state:'admin', page_title: 'first page'}})
    

    然后像这样输出整个对象:

    <script type='text/javascript'>
        var data = <%= JSON.stringify(data)%>
    </script>
    

    这样您就可以通过data.state 访问状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多