无法使用node.js,express和embedjs在include语句中包含动态创建的文件

时间:2013-09-04 10:52:01

标签: javascript node.js templates include ejs

我试图包含一个html文件,无论是.ejs还是.html,但都是动态的。

例如,在一个非常简单的情况下,我想调用一个文件,或者说, ./views/nextdirectory/loggedin.ejs

<div class="loggedin">Hi <%= user.name %></div>

或./views/nextdirextory/loggedout.ejs

<ul class="nav">
  <li><a href="login">Log In</a></li>
  <li><a href="signup">Sign Up</a></li>
</ul>

-

在我的web.js文件中,我检查用户是否已登录并设置一个名为loggedInOrNot的变量,该变量包含./nextdirectory/loggedin.ejs或./nextdirectory/loggedout.ejs并在page.ejs文件中调用loggedInOrNot

我知道我可以使用如here所示的include语句,但是,我无法在include语句中使用动态创建的变量。

更新:
所以答案就在这里。在发布我的问题之前没有看到这个,虽然我认为它更像是一个黑客或修复而不是一个适当的应用程序。当应用程序扩展时,不确定这可能如何工作:
Using interpolation within Node.js EJS includes

更新:
实际上这不起作用。 HTML标记显示但未呈现。

更新:
所以我终于开始工作了。只是一个简单的错误。必须添加连字符,如下所示:

<%- loggedInOrNot %>

0 个答案:

没有答案