2016-05-30 61 views
-1

我有一个AngularJS web应用程序,在注销时我将重定向到登录页面。我希望登录页面中的某些字段根据从后端退出服务传回的一些数据隐藏。AngularJS更新另一个控制器的范围数据

有没有办法做到这一点?我只需要更新登录控制器js中的变量,但我不知道如何从登出控制器js执行该操作。

请全力帮助AngularJS!

+0

你描述是非常广,可以实现任意数量的方法。如果您可以包含您正在使用的表单,要隐藏的字段以及一些示例数据,我们可以对我们的解决方案进行更具体的说明。 – Makoto

+0

请给我一个您认为可行的解决方案。谢谢 – user3808203

+0

我之前提到这个过于广泛的原因[可以在这篇文章中找到](http://meta.stackoverflow.com/q/323721/1079354)。如果你无法证明我们正在使用什么约束条件,以及一种解决方案是否会客观地为你工作,那么感觉就像一个完全太宽泛的问题,并会产生一些不同的答案。你应该缩小你的标准。 – Makoto

回答

0

你需要使用“值”选项,在您的应用程序

angular.module('yourAppName') 
    .value('Config', null); 

,那么你需要在你的控制器注入这使他们交流彼此的

.controller('controllerLogout', function(Config){ 
//do something that update Config 
} 

.controller('MainController' function(Config){ 
     //use Config here to bind it in a ng-show in HTML controlled by 
     //coontroller itself 
} 
+0

我很抱歉,因为我对它很陌生,你到底注入了多少? – user3808203

+0

我已经完成了:)查看控制器功能参数:P 现在您可以在两个控制器中使用配置变量了 – shall

+1

怀疑“值”会有帮助,运行后无法更改时间 – charlietfl

-1

我想你可以使用事件。

在你登出控制器做到这一点:

$rootScope.$broadcast('loggedOut',data); 

而且在你登录控制器

$scope.$on('loggedOut', function(event, data) { 
} 

Plunker

相关问题