如何在angularjs中传递全局值?

如何在angularjs中传递全局值?,angularjs,Angularjs,我正在构建一个基于angularjs的web应用程序。我已经在标题中包含了ajax加载程序。我已经为登录和注册实现了引导模式。每个模态都有自己的控制器。我无法在标题中获得ajax加载程序的开和关值。我想实现某种全局值,它可以在整个ng应用程序范围内访问。您可以为$rootScope分配一个值,或者您可以将您的值作为AngularJS工厂/服务的属性。如果您符合以下条件,您可以向$rootScope添加值: angular.module('myApp', []) .run(function

我正在构建一个基于angularjs的web应用程序。我已经在标题中包含了ajax加载程序。我已经为登录和注册实现了引导模式。每个模态都有自己的控制器。我无法在标题中获得ajax加载程序的开和关值。我想实现某种全局值,它可以在整个ng应用程序范围内访问。

您可以为$rootScope分配一个值,或者您可以将您的值作为AngularJS工厂/服务的属性。

如果您符合以下条件,您可以向$rootScope添加值:

angular.module('myApp', [])
    .run(function($rootScope) {
        $rootScope.key = val;
});

但是您应该尽可能避免使用全局变量。有时你需要使用它们,但有时这是一个症状,你的应用程序可以建立一个不同的,更好的方式。对于此实例,您可以创建应用于标头的指令。

使用$rootScope可以实现以下目的:

在主窗口中设置全局变量:

function MyMainWindow($scope, $rootScope) {
$rootScope.name = 'Root Variable'; }
模态窗口读取全局变量:

function MyModalWindow($scope, $rootScope) {
$scope.name2 = $rootScope.name; }
使用{{name2}调用根文件夹


希望这有帮助:)

什么是ajax加载程序?意味着我在ajax调用期间显示加载程序动画。那么,您为什么要在angular之外这样做?Angular的http服务是基于承诺的,这意味着您可以在http请求之前打开动画,并在请求解析后关闭动画。如果在ng应用程序范围内的标头中包含loader animation div,则可以。我在$.http之前打开动画,然后打开成功,隐藏它。它在普通页面上工作正常。但是对于modal,我得到的是modal范围内的值,而不是header中的值