首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据ng-show和外部变量使此HTML选项卡可见- newby AngularJS问题

如何根据ng-show和外部变量使此HTML选项卡可见- newby AngularJS问题
EN

Stack Overflow用户
提问于 2019-01-24 22:03:10
回答 1查看 45关注 0票数 0

控制选项卡显示的HTML代码段:

代码语言:javascript
运行
复制
<li class="presentation" ng-show="currentUserAuthority == LIBRARIAN" >

……

问题是这个变量"currentUserAuthority“直到网页初始化后才会更新。因此,每个人都被初始化为GUEST,并且任何人都看不到LIBRARIAN选项卡。在AngularJS中有什么方法可以解决这个问题吗?我知道如果我对Javascript/Angular有很好的理解,这可能会很容易,但我不是。

编辑:我正在添加代码,以澄清,根据要求。我继承了这段代码,所以我不得不摸索着通过它。基本上,有一个带有控制器的MYPANEL.html和一个附带的MYPANEL.js。这个问题似乎是一个时机问题。在login.js完成从后端接收角色之前,MYPANEL.js将currentUserAuthority视为默认来宾,并将currentUserAuthority设置为库管理员。我在MYPANEL.js中有一个监视例程,据我所知,它应该充当一种事件侦听器,并通知每个人变量已经更改,包括网页。手表代码如下所示。

代码语言:javascript
运行
复制
$scope.$watch('GlobalService.currentUserAuthority`,function() {
$scope.currentUserAuthority = GlobalService.currentUserAuthority;
LoggingService.info('WATCH FIRED: current value is '+ $scope.currentUserAuthority);
$scope.$apply();
});

从日志中可以看出,$watch只按照它在MYPANE.js代码中出现的顺序执行,稍后,当我可以验证被监视的变量已经更改时,就不会调用这个函数。

那么我到底做错了什么呢?我需要通知mypane.html一个变量已经更改,这样我的选项卡才能正确显示。感谢您所能提供的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-01-24 23:11:35

我认为您需要在ng-show条件中使用单引号将字符串值括起来

代码语言:javascript
运行
复制
<li class="presentation" ng-show="currentUserAuthority == 'LIBRARIAN'" >Librarian</li>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54348431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档