[英]Angular ng-show not working properly
我有下面的HTML,然后有我的服務和控制器下面的JS:
<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-hide可以正常工作,但是ng-show不能。
Auth.is_authenticated()
.success(function(data) {
$scope.is_authenticated = data.authenticated;
});
服務:
return {
is_authenticated: function() {
return $http.get('/api/users/is_authenticated');
},
當我轉到URL中的API端點時,它返回`{“ authenticated”:true}
這是怎么回事
編輯:
當我在開發人員工具中查看源代碼時,出於某種原因,似乎ng-show
帶有<ul
>的HTML甚至都沒有。
這是真的嗎?
Change is_authenticated function like :
Auth.is_authenticated()
.success(function(data) {
if(data.authenticated === 'true')
{
$scope.is_authenticated = true;
}
else
{
$scope.is_authenticated = false;
}
});
您可以簡單地將值更改為布爾值並相應地工作。 因此,您的控制器代碼將如下所示:
Auth.is_authenticated()
.success(function(data) {
$scope.is_authenticated = (data.authenticated. toLowerCase() === "true");
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.