【问题标题】:Can't get ejs value into script variable?无法将 ejs 值放入脚本变量中?
【发布时间】:2018-02-08 19:12:05
【问题描述】:

每当我尝试将脚本中的变量设置为等于使用 ejs 呈现的数组时,我都会得到“无效是意外令牌”。

这里是sn-p:

    <script type="text/javascript">
        var list = <%= events.slice(0) %>;
    </script>

最初我将其设置为:

    <script type="text/javascript">
        var list = <%= events %>;
    </script>

但我收到同样的错误。我很确定你可以渲染一个包含脚本标签的 ejs 文件,并将 ejs 变量设置为脚本标签中的一个变量。我错了吗?

Events 是日历的事件模型数组。

【问题讨论】:

  • 你在渲染的 html 中得到了什么?
  • 在脚本标签内试试 this.events

标签: javascript node.js ejs


【解决方案1】:

这就是你要找的东西:

<script type="text/javascript">
    var list = <%-JSON.stringify(events)%>;
</script>

【讨论】:

  • 做到了。谢谢!
【解决方案2】:

您不需要添加脚本标签。只需将您的代码放在 html 中

这是一个简单的例子

index.ejs

<script>

//just call the events variable

for(var i = 0; i < events.length; i++){
    var myEvent = events[i];
    //handle the event
 }

//then use the variables outside the script tag after you are done with all the handling

</script>

<ul>
<li><%=myDefinedVariable%></li>
<% var name = "Jake" %>
<li><%=name%></li>

<%for(var i = 0; i < 10; i++){%>
<li><%=name%></li> // puts li in the ul 10 times
<%}%>
</ul>

【讨论】:

  • 我明白,但我是使用脚本创建日历
  • 您仍然不必在脚本标签中包含您的 ejs javascript,只需将它们放在外面并在那里创建日历@CollinDeSoto
  • 我需要在每天创建博客的正确日期列出每个事件。如果 ejs var 在脚本之外,我无法在正确的日期动态列出每个事件。如果我不使用脚本标签,我最终会得到很多
  • 然后在脚本标签中定义它们,每当您将它们发布到 html 时,只需像这样使用它@CollinDeSoto
  • 我忘了说事件是从 mongodb 拉出来的
猜你喜欢
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多