角NG-显示不正常
我有以下的HTML,然后JS低于我的服务和控制器:角NG-显示不正常
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right" ng-show="is_authenticated">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Account <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Account</a></li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" ng-hide="is_authenticated">
<li ng-class="{ active: register }"><a href="#/register">Sign Up</a></li>
<li ng-class="{ active: login }"><a href="#/login">Sign In</a></li>
</ul>
</div>
的NG隐藏工作正常,但是,NG-显示没有。
Auth.is_authenticated()
.success(function(data) {
$scope.is_authenticated = data.authenticated;
});
服务:
return {
is_authenticated: function() {
return $http.get('/api/users/is_authenticated');
},
当我走在它返回的URL的API端点`{ “认证”:真正}
这是什么情况?
编辑:
当我查看开发工具的源好像出于某种原因与<ul
的HTML>为ng-show
甚至不存在。
这是真的吗?
Change is_authenticated function like :
Auth.is_authenticated()
.success(function(data) {
if(data.authenticated === 'true')
{
$scope.is_authenticated = true;
}
else
{
$scope.is_authenticated = false;
}
});
对不起,JSON是{“authenticated”:true} – 2014-09-26 14:43:25
我已经创建[小提琴](http://jsfiddle.net/38ju2g03/)根据您的代码与假服务。看看,我希望这有助于! – Kailash 2014-09-26 17:26:41
您可以简单地将该值更改为布尔值并相应地工作。因此,您的控制器代码将如下所示:
Auth.is_authenticated()
.success(function(data) {
$scope.is_authenticated = (data.authenticated. toLowerCase() === "true");
});
对不起,JSON是{“authenticated”:true} – 2014-09-26 14:47:35
@BillyAssim:为问题创建一个[plunkr](http://plnkr.co/edit/gB9Z0T07zrmkMNpU8h0h?p=preview)希望它有帮助 – V31 2014-09-29 05:29:56
是不是因为您的服务返回布尔值为String?这意味着值总是真的(非空字符串)? – matys84pl 2014-09-26 07:11:23