2016-05-02 6 views
0

ich den Listenwert ausblenden möchten basierend auf dem login.When Superadmin Login zeigen die Stadt Liste .Aber Benutzer Login die Stadt Liste ausblenden.ng-hide basierend auf Umfang Werte

Hier ist controller.js

myAppControllers.controller('LoginController',['$scope', '$location', '$http', 
function($scope, $location, $http) { 

    $scope.log_userx = {}; 

    $scope.login_user = function(login) { 
    $scope.log_user = angular.copy(login);  
    $scope.login = {};         
    $http({ 
     url: "/login", 
     method: "POST", 
     headers: { 'Content-Type': 'application/json' }, 
     data:$scope.log_user 
    }).success(function (data) { 
     var resp = data['user'] 
     $scope.user_admin = data.user.roles; 
     $location.path("/index"); 
    }).error(function (data,status) { 
     $location.path("/login"); 
    }); 
    $scope.finduser=function(){ 
    $scope.user_admin1=$scope.user_admin; 
    alert(angular.toJson("admin1 "+$scope.user_admin1)); 
    $scope.visible = false; 
    if($scope.user_admin1!=="superadmin") 
    { 
    alert("Not Superadmin"); 
    $scope.visible =true; 
    return $scope.visible; 
    } 
    return true; 
    }; 
};}]); 

in Html Datei

 <ul class="breadcrumb" style="background-color:#EEEEEE" ng-init="finduser()"> 
      <li><button type="submit" id="datadash" class="btn btn-default">home</button></li> 
      <li ng-if="visible==true"><a href="/#/city" class="button special">city</a></li>    

</div> 
+0

Geben Sie einfach ng-if = "visible" ein und überprüfen Sie, ob es funktioniert. Überprüfen Sie auch einmal, indem Sie den sichtbaren Wert mit {{visible}} drucken. Nur um sicherzustellen, dass Sie den Wert erhalten, den Sie suchen. –

+1

Beachten Sie, dass ng-if einen eigenen Bereich erstellt und sichtbar nicht mehr mit Ihrem Controller verbunden ist. ng-show könnte Ihr Problem lösen oder controllerAs Syntax verwenden. –

Antwort

0

Update-Bereich mit beiden Wenn und sonst Bedingung.

if($scope.user_admin1!=="superadmin") 
{ 
alert("Not Superadmin"); 
$scope.visible =true; 
// return $scope.visible; 
}else{ 
$scope.visible =false; 
} 

und ändern Sie den HTML-Code wie folgt.

+0

ich wurde nicht alarmiert und funktionierte nicht..die stadt zeigt nicht in beiden login – divakar

+0

ng-init funktioniert nicht, warum nicht alarmieren – divakar

0

Versuchen Sie diesen HTML zu verwenden, indem Sie den Zustand der Anzeige der Stadt Liste zu ändern.

<ul class="breadcrumb" style="background-color:#EEEEEE" ng-init="finduser()"> 
     <li><button type="submit" id="datadash" class="btn btn-default">home</button></li> 
     <li ng-if="!visible"><a href="/#/city" class="button special">city</a></li> 
</ul> 
+0

es funktioniert nicht – divakar

0

Sie sollten dafür ng-show verwenden.

Mit diesem nur "Stadt" Link soll nur für Ihre Superadmin angezeigt werden Dieser Superadmin-Link ist ein Teil der Animation, der auf $ scope-Werten auf controller.js-Ebene basiert, während ng-if den $ animate-Service verwendet, wenn die HTML-zu-HTML-Eingaben eine Animation enthalten, die Controller.js ausschließt. Hier ist ein Beispiel für ng-if und ng-show von eckigen Dokumenten

+0

Jeder spezifische Grund, ng-show und nicht ng-if zu verwenden? –

+1

Das Anzeigen dieser Superadmin-Verknüpfung ist ein Teil der Animation basierend auf $ scope-Werten auf controller.js-Ebene, während ng-if den $ animate-Dienst verwendet, wenn eine Animation auf den HTML-zu-HTML-Eingaben exclusive controller.js enthält. Hier ist ein Beispiel für [ng-if] (https://docs.angularjs.org/api/ng/directive/ngIf) und [ng-show] (https://docs.angularjs.org/api/ng/directive)/ngShow) von angular docs – mattymanme

+0

Ok .. Also wenn wir wollen, dass etwas animiert wird, müssen wir mit ng-if gehen .. Verstehe ich es richtig? –

Verwandte Themen