【问题标题】:EJS - pass variable when includeEJS - 包含时传递变量
【发布时间】:2014-07-10 10:15:39
【问题描述】:

我在 nodejs 的后端使用 ejs。 我想在包含时传递变量。包含标题时,传递页面标题。

index.ejs:

<% include header %>
<body> . . . </body>
<% include footer%>

header.ejs:

<html lang="en">
<head>
    <title><%- my_tytle %></title>
</head>

页脚.ejs:

</html>

如何在include命令中传递my_title

【问题讨论】:

  • 我认为当 my_title 在 index.ejs 中定义时,它在 header-partial 中也是已知的 ...
  • 你能举个例子吗?

标签: ejs


【解决方案1】:

你可以在include语句中传递对象

&lt;%- include("header",{title:"your_title"}) %&gt;

【讨论】:

  • 这只是包含一个硬编码到您的 ejs 中的“变量”,不是吗?您将如何包含来自服务器的标题? }) %> 不起作用。
  • 这个答案是可以接受的,因为它传递了一个变量,但是,它是一个硬编码的值。所以这根本不是答案。
【解决方案2】:

您可以将my_tytle 直接传递给index.ejs,如果标题有部分视图,标题应该可以访问my_tytle

例如: index.ejs:

<% include header %>
<body> . . . </body>
<% include footer%>

header.ejs:

<html lang="en">
<head>
    <title><%- my_tytle %></title>
</head>

如果您将 my_tytle 的值传递给 index.ejs,则现在从节点服务器,如下所示:

res.render('template_file.js', {
        my_tytle : "Value for your title"
    });

那么您的部分视图(即您的情况下的标题)也将能够访问该变量。

【讨论】:

    【解决方案3】:

    正如 cmets 中某处所问的,我们也可以使用一个变量来由服务器控制,方法如下: &lt;%- include("header",{my_tytle :`${myVar}`}) %&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-30
      • 2016-03-04
      • 2019-03-24
      • 2011-08-21
      • 2011-11-28
      • 2012-08-07
      • 2014-10-25
      相关资源
      最近更新 更多