gpt4 book ai didi

javascript - 更改其他 Controller 中的 ng-show 值

转载 作者:行者123 更新时间:2023-11-28 06:07:08 25 4
gpt4 key购买 nike

我正在尝试使用 ng-show 显示和隐藏 div。这是一个我只想在某些 View 中显示的导航栏。

我有一个“控制”该 div 的 Controller 。在其他 Controller 中,我想编辑此 ng-show 值以隐藏或显示 div(导航栏)。

我尝试了不同的方法,例如使用 $rootScope、超时、$apply、工厂...但没有任何效果。

所以我在这里询问是否有人可以帮助我。

(抱歉我的英语不好)

这是我的html和js代码(最后编辑代码)

<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>

我也尝试了 (ng-show="isLogged==false") 。

div的 Controller :

.controller('appCtrl', function($scope, $rootScope) {
console.log($scope.isLogged); //---> this shows undefined
});

我想要编辑 isLogged 值的 Controller :

cities2.controller('userCtrl',['rootScope', '$scope', '$state','$http','md5', function($rootScope, $scope, $state, $http, md5) {
$rootScope.$apply(function(){
$rootScope.isLogged = true;
});

感谢您的帮助!

最佳答案

使用服务在 Controller 之间共享数据是一种很好的做法。

cities2.controller('appCtrl', ['$scope', 'LoggedStatus', function($scope,LoggedStatus) {
$scope.LoggedStatus = LoggedStatus;
}]);

cities2.controller('userCtrl', ['$scope', 'LoggedStatus', function($scope,LoggedStatus) {
$scope.LoggedStatus = LoggedStatus;
}]);

cities2.service('LoggedStatus', function() {
return {
isLogged: false
}
});

更改任一 Controller 中 $scope.LoggedStatus.isLogged 的​​值都会更改两个 Controller 中的值。

关于javascript - 更改其他 Controller 中的 ng-show 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com