javascript - ejs中的if语句

标签 javascript node.js sails.js ejs

实际上,我的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') %>

我想在导航栏和正文中使用不同的 Controller ,所以我这样划分 View 。

现在我希望登录页面有所不同(根本没有导航栏)。我试图用 ng-show 隐藏导航栏,但它闪烁,我试图停止闪烁,但我仍然看到左侧栏几秒钟,这真的很烦人。

因此,如果页面位置是/login,我想尝试仅显示正文。我无法为此使用 Controller ,因为导航栏和正文部分已使用的 Controller 会发生冲突。

我想使用这样的东西:

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

...


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

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

最佳答案

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

因此在相应的 Controller 中创建它并将其传递到您的 View ,如下所示:

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

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

相关文章:

javascript - Web Worker 的消息有多快?

javascript - 从函数定义中引用 GeneratorFunction 实例

javascript - 如何使用javascript反转xml的顺序

javascript - 按字段压缩 Json 对象 JQuery/JS

javascript - 启动 node.js 服务器时获取此网页不可用响应

node.js - sails.js + waterline One-To-Many模型关联,删除Many时会发生什么?

sails.js - 如何在pm2的生产环境中运行Sails(sails lift --prod)

node.js - Sails 将数据创建为多对多关系

javascript - 范围输入以更改文本和图像

node.js - 在 Sequelize 模型中使用对象作为列包装器