簡體   English   中英

角度ng-show無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM