【问题标题】:How to share variable between 2 app with AngularJS如何使用 AngularJS 在 2 个应用程序之间共享变量
【发布时间】:2017-06-01 15:57:23
【问题描述】:

我有一个带有 2 个主文件夹的 angularjs 应用程序。 Webapp -> 管理员/用户。

每个都包含 html 和 js 文件以显示 webapp。所有的应用程序。基于 REST 主体,所以当我从后端(springMVC/Hibernate/JPA)获取数据时,它是一个 JSON 文件。

在管理方面,我有一个带有控制器的 user.js 文件:

Service.userRead($routeParams.id).then(function(data) {
     if (data.status == SUCCESS) {
           $scope.userIn = data.user;
           var color = $scope.userIn.bannerColor;

     } else {
           logger.warn('userRead: ' + JSON.stringify(data));    
           $scope.redirectTo('/users');
     }
}

在用户端,当客户端在 webapp 上(未连接到管理端)时,我想获取先前存储在数据库中的特定用户的背景色。这些十六进制代码用于设置标题的样式。

问题是:如何从控制器 user.js 中检索数据并将变量颜色传递到位于另一个文件夹中的标题控制器(用户端的 HeaderController)?

【问题讨论】:

    标签: javascript java angularjs hibernate


    【解决方案1】:

    【讨论】:

    • 感谢@Gayathri 的回答。但是当我成功时,在 console.log($rootScope.variable) 的另一个控制器上,我得到了“未定义”。
    • 这两个控制器是否在同一个模块中可用?也许更多部分代码可以帮助我找出原因
    • 试试 module.controller('MyController', ['$scope', '$rootScope',function($scope, $rootScope) { ... }]);
    • 控制器在同一模块中可用。在两个 index.js 中分别声明为: var myApp = angular.module('myApp', ['ngAnimate', 'ngRoute', 'ngSanitize', 'angular-growl', 'angulartics', 'angulartics.google.analytics' , 'myAppControllers']);
    • 然后:var controllers = angular.module('myAppControllers', []);为了简化 user.js 控制器中控制器的声明,例如
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 2012-12-30
    • 2023-02-20
    • 2014-09-30
    • 2020-06-06
    • 1970-01-01
    相关资源
    最近更新 更多