实际上,我的layout.ejs代码如下所示:

    <!-- begin:: Page -->
      <div class="m-page">
        <%- partial('./partials/topnav.ejs') %>
        <!-- begin::Body -->
        <div class="m-body">
          <%- partial('./partials/leftnav.ejs') %>
          <div class="m-wrapper">
            <%- body %>
          </div>
        </div>
        <!-- end:: Body -->
        <%- partial('./partials/footer.ejs') %>
      </div>
      <!-- end:: Page -->
      <%- partial('./partials/side.ejs') %>


我想在导航栏和正文中使用其他控制器,因此我将视图划分为这样。

现在,我希望登录页面有所不同(根本没有导航栏)。我试图用ng-show隐藏导航栏,但是它闪烁了,我试图停止这种闪烁,但是我仍然看到左边的条形灯有几秒钟,这确实很麻烦。

因此,如果页面的位置是/ login,我想尝试仅显示正文。我不能为此使用控制器,因为已经用于导航栏和正文部分的控制器会发生冲突。

我想使用这样的东西:

<script type="text/javascript">
  var path = this.window.location.pathname;
</script>

...


<% if (path == '/login') { %>
  <%- body %>
<% } else{ %>
  ..the previous code..
<% } %>


但这会出现“未定义路径”错误。
因此,我四处寻找有关EJS if语句的信息,但充其量始终处于else条件。

最佳答案

您需要定义一个path变量,该变量保存所需的正确值。

因此,在相应的控制器中创建它,并将其传递给视图,如下所示:

res.view(pathToYourView, {  path: yourPath, ... });

关于javascript - ejs中的if语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50045253/

10-16 20:07