Ich versuche, ein div mit ng-show
anzuzeigen und zu verbergen. Es ist eine Navigationsleiste, die ich nur in einigen Ansichten anzeigen möchte.Ändern ng-Show Wert in anderen Controller
Ich habe einen Controller, der "div" steuert. Und in anderen Controller möchte ich diesen ng-show
Wert bearbeiten, um das Div (Navbar) zu verstecken oder zu zeigen.
Ich versuchte verschiedene Dinge wie mit einem $rootScope
, ein Timeout, ein $apply
, eine Fabrik ... aber nichts funktioniert.
Also frage ich hier, ob mir jemand helfen könnte.
(Sorry für mein Englisch)
Das ist mein html und js Codes (zuletzt Code)
<div id="main">
<!-- Aquí inyectamos las vistas -->
<div ng-controller="appCtrl" ng-show="isLogged" class="navbar navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
<a class="navbar-brand" href="#/">Aula Virtual</a> </div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav" style="text-align: right">
<li class="active"><a href="#/home">Home</a></li>
<li><a href="#/server">Users</a></li>
<li><a href="#/operaciones">Operaciones</a></li>
<li><a href="#/about">About</a></li>
<li><a href="#/contact">Contact</a></li>
</ul>
</div>
</div>
<div class="connect">
<div class="container">
<p>
Aula Virtual para profesorado y alumnos de la universidad
</p>
</div>
</div>
</div>
<div ui-view></div>
</div>
Ich habe versucht, eine (ng-show = "isLogged == false") auch.
Die Steuerung des div:
.controller('appCtrl', function($scope, $rootScope) {
console.log($scope.isLogged); //---> this shows undefined
});
Der Controller, wo ich den isLogged Wert bearbeiten möchten:
cities2.controller('userCtrl',['rootScope', '$scope', '$state','$http','md5', function($rootScope, $scope, $state, $http, md5) {
$rootScope.$apply(function(){
$rootScope.isLogged = true;
});
Danke für die Hilfe!
wo u die isLogged variable Initialisierung? –
Ich glaube, der $ scope wird nicht über verschiedene Controller übertragen? Also müssen Sie die isLogged-Variable im appCtrl-Controller initialisieren? – Olly
Ich habe versucht, ein $ scope.isLogged = false in der appCtrl vorher, das ist was du meinst als initialisieren? –