【问题标题】:Using booleans in ng-if from res.render (AngularJS, Express)在 res.render (AngularJS, Express) 的 ng-if 中使用布尔值
【发布时间】:2016-02-19 23:10:03
【问题描述】:

对网络开发相当缺乏经验,任何帮助/建议/更正将不胜感激。

如果某人是否是管理员,我正在尝试创建一个具有不同功能的网页。我正在使用护照进行管理员登录和身份验证。我想传递一个布尔值,比如 isAdmin,如下所示:

res.render('thisPage', { isAdmin: (req.isAuthenticated)});

然后在html文件中访问这个

<script type='text/javascript'>
  var isAdmin = "{{ isAdmin }}";
</script>

<div class="main" ng-controller="MainController">
  <div ng-if="isAdmin">
    <app-info></app-info>
  </div>
</div>

<!-- Modules -->
<script src="app/app.js"></script>

<!-- Controllers -->
<script src="app/MainController.js"></script>

<!-- Directives -->
<script src="app/directives/directive.js"></script>

这仅用于当前测试 - 但即使我验证 isAdmin 为真(服务器端),当我在 localhost 上运行服务器时,此 url 上也没有显示任何内容。我的方法有什么问题?

【问题讨论】:

  • 您是使用车把还是玉石来快速渲染您的模板?
  • 只使用 html 作为我的引擎 - 这是问题所在吗?

标签: angularjs express


【解决方案1】:

我认为你真正想要的是 ng-show/ng-hide,而不是 ng-if

<div ng-show="isAdmin">...</div> // Show if isAdmin is true
<div ng-hide="!isAdmin">...</div> // Hide if the user is NOT admin

【讨论】:

  • 所以我添加了一个 ng-show 块,每个 isAdmin 和 !isAdmin 一个。不过,如果我确保 req.isAuthenticated = true,isAdmin div 将不会显示。我尝试在我的 html 文件中访问 isAdmin 的方式是否有错误?
  • 您需要向我们展示您的控制器以及“isAdmin”的设置方式。例如,如果将 isAdmin 设置为字符串,则“true”和“false”都是布尔值 TRUE。您需要确保 isAdmin 确实被设置为布尔值。
猜你喜欢
  • 1970-01-01
  • 2020-10-08
  • 2015-07-27
  • 2016-09-04
  • 1970-01-01
  • 2018-04-17
  • 2013-10-01
  • 2015-09-13
相关资源
最近更新 更多