angularjs 设置全局变量的7种方法

来源:互联网 发布:数据挖掘待遇 编辑:程序博客网 时间:2024/06/10 16:59

在ng-app或控制器中定义的全局变量,在不同的controller里都可以使用。

1,通过var 直接定义global variable,这根纯js是一样的。

2,用angularjs value来设置全局变量 。

3,用angularjs constant来设置全局变量 。

4,用angularjs rootscope来设置全局变量 。

5、定义服务。

6、$rootScope。

7、定义一个服务 来传 值:

 不同controller之间传值,profile是自定义的一个服务!

 

?
1
2
3
4
.controller('a',function(){
    Profile.userNameAll = $scope.user.userName;
    Profile.cellphone = $scope.user.phoneNum;
})

  

?
1
2
3
4
.controller('b',function(){
    $scope.userName = Profile.userNameAll;
     $scope.phoneNum = Profile.cellphone;
})


下面用一个例子,来说明其中3种方法:

实例:

1,在app模块中,定义全局变量:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var test2 = 'tank';         //方法1,定义全局变量  
   
var app = angular.module('app', [  
  'ngRoute',  
  'phonecatControllers',  
  'tanktest'  
]);  
   
app .value('test',{"test":"test222","test1":"test111"});  //方法2定义全局变量  
   
app .constant('constanttest''this is constanttest');    //方法3定义全局变量  
   
app .config(['$routeProvider',                //设置路由  
  function($routeProvider) {  
    $routeProvider.  
      when('/phones', {  
        templateUrl: 'partials/phone-list.html'      //这里没有设置controller,可以在模块中加上ng-controller  
      }).  
      when('/phones/:phoneId', {  
        templateUrl: 'partials/phone-detail.html',  
        controller: 'PhoneDetailCtrl'  
      }).  
      when('/login', {  
        templateUrl: 'partials/login.html',  
        controller: 'loginctrl'  
      }).  
      otherwise({  
        redirectTo: '/login'  
      });  
  }]);

2,在controller中调用全局变量

?
1
2
3
4
5
6
7
8
9
10
/* Controllers */  
   
var phonecatControllers = angular.module('phonecatControllers', []);  
   
phonecatControllers.controller('PhoneListCtrl', ['$scope','test','constanttest',  
  function($scope,test,constanttest) {  
    $scope.test = test;                   //方法2,将全局变量赋值给$scope.test  
    $scope.constanttest = constanttest;   //方法3,赋值  
    $scope.test2 = test2;                 //方法1,赋值  
  }]);

3、结果

?
1
2
3
4
5
6
7
<div data-ng-controller="PhoneListCtrl">  
    {{test.test1}}  
    {{constanttest}}  
    {{test2}}  
</div>  
   
结果:test111 this is constanttest tank

其实我们可以通过其他方法来实现全局变量,例如:angularjs factory的功能。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩体温突然低怎么办 宝宝35.5度体温怎么办 宝宝出汗体温低怎么办 小孩体温35.2度怎么办 孩子睡觉出冷汗怎么办 小孩感冒发烧咳嗽怎么办 小孩咳嗽出汗多怎么办 小孩手脚出汗多怎么办 小孩感冒出虚汗怎么办 宝宝感冒出冷汗怎么办 宝宝感冒睡觉出汗怎么办 宝宝感冒冒冷汗怎么办 宝宝感冒爱出汗怎么办 宝宝感冒老出汗怎么办 两只小鸡打架怎么办 老年人老是换保姆怎么办 孩子9不吃饭怎么办 两岁半宝宝不爱喝水怎么办 宝宝老是不吃饭怎么办 宝宝不爱吃饭喝水怎么办 小宝宝突然不爱吃饭怎么办 一岁多小宝宝不爱吃饭怎么办 宝宝肚子发撑怎么办 小宝宝咳嗽有痰怎么办 一岁小宝宝咳嗽怎么办 oppo连wifi超时怎么办 小孩不会写3怎么办 秘密花园黑色底怎么办 孩子说话不利索怎么办? 两岁半宝宝x腿怎么办 孩子低烧不退怎么办 小班迷眼了怎么办教案 玩呗麻将群老封怎么办 游戏玩不厉害怎么办 厕所太小洗衣机怎么办 洗衣机进水太小怎么办 油性笔干了怎么办 水笔写不出来怎么办 手机图案密码打不开怎么办 图案锁住了打不开怎么办 手机绘制图案打不开怎么办