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

在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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值