当前位置:首页 > 日记 > 正文

AngularJS基于provider实现全局变量的读取和赋值方法

AngularJS基于provider实现全局变量的读取和赋值方法

本文实例讲述了AngularJS基于provider实现全局变量的读取和赋值方法。分享给大家供大家参考,具体如下:

简单全局变量的设置

1,通过var 直接定义global variable,这根纯js是一样的。
2,用angularjs value来设置全局变量 。
3,用angularjs constant来设置全局变量 。

示例代码如下:

在app文件中,声明三种变量

'use strict';/* App Module */var test2 = 'tank';     //方法1,定义全局变量var phonecatApp = angular.module('phonecatApp', [   //定义一个ng-app 'ngRoute', 'phonecatControllers', 'tanktest']);phonecatApp.value('test',{"test":"test222","test1":"test111"}); //方法2定义全局变量phonecatApp.constant('constanttest', 'this is constanttest');  //方法3定义全局变量

在controller中对全局变量进行读取

'use strict';/* 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,赋值 }]);

注意事项

var test;设置后,无需在controller声明的时候注入,直接使用即可。

value和contant,在app中初始化后,需要在controller声明时候注入到controller中,才能够使用。

这三种方式都存在一个问题,即只能够读取全局变量,无法对全局变量进行修改赋值。在很对业务逻辑中无法满足业务需求。

使用provider实现全局变量。

步骤与上面的value和contant差不多。

在app中完成声明和初始化。

<script type="text/javascript">    var app = angular.module('ngRouteWxCtb', ['ngRoute','ngCookies']);    //TODO:provider of globle uid and weixinIsInit param    app.provider('userService', function () {      var data = {uid:0,weixinIsInit:false};      var f = function (uid,weixinIsInit) {        if (uid != 0)        {          data.uid= uid;          data.weixinIsInit = weixinIsInit;        }        return data;      };      this.$get = function () {        return f;      };    });</script>

在controller声明的时候,注入。

app.controller('myCtrl1', function ($scope, userService) {  var data = userService(0, 0, false);//读取全局变量}));app.controller('myCtrl2', function ($scope, userService) {  var data = userService(123, 111, true);//设置全局变量}));

通过provider提供的get方法,实现参数的读取和赋值。

注意事项

代码中,我们对provider 的赋值操作进行了取巧设计,当第一个参数等于0的时候,默认是读取,当第一个参数不为0的时候,实现的是设置后进行读取。这样,公用一个get方法即可,无需增加新的方法。

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》

希望本文所述对大家AngularJS程序设计有所帮助。

相关文章

EXCEL怎么使用加法运算EXCEL加法运

EXCEL怎么使用加法运算EXCEL加法运

运算,方法,使用教程,计算,步骤,  在Excel表格中,常常会用到Excel公式来统计一些报表或数据等,这时就少不了要用到加、减、乘、除法,这样就少不了加、减、乘、除运算的公式,那么我们又如何利用公式来对一些数据进行加法计算呢?下面小编告诉你…

JavaScript基础之流程控制语句的用

JavaScript基础之流程控制语句的用

流程控制语句,基础,电脑软件,JavaScript,第三部分:流程控制语句JavaScript代码是书写位置:JavaScript代码应该写在<script type=”text/javascript”></script>这一对标记中。或者作为外部引用<script src="JavaScript代码路径"></script>J…

vue环境搭建简单教程

vue环境搭建简单教程

教程,环境搭建,简单,电脑软件,vue,要使用vue来开发前端框架,首先要有环境,这个环境要借助于node,所以要先安装node,借助于node里面的npm来安装需要的依赖等等。①安装nodejshttps://nodejs.org下载nodejs,(lts)安装的时候,点击同意,一路next就可以…

.net 应对网站访问压力的方案总结

.net 应对网站访问压力的方案总结

方案,网站,压力,电脑软件,net,开年比较空,抽时间写个博文,总结下自己工作里的一些应对网站访问压力的技术方案。自己项目现在大概一天50W的pv。已从前端到后端的顺序总结下自己用的一些方案。一. 前端页面:1.首先减少资源的大小,能用小图,就用小…

nodejs对express中next函数的一些

nodejs对express中next函数的一些

函数,电脑软件,nodejs,express,最近公司在使用node做前后端分离,采用的web框架是express,所以对express框架进行了深入的了解,前段时间写了篇关于express路由的文章,但是在那篇文章中貌似少了一个很重要的内容,就是express的next,所以今天单独来…

Fireworks视图模式怎么切换使用?

Fireworks视图模式怎么切换使用?

模式,视图,电脑软件,Fireworks,Fireworks怎么切换视图模式,这个功能可能我们现在一直在用ps估计也没有这个功能。软件名称:fireworks8简体中文版 (含序列号)软件大小:88MB更新时间:2014-09-091、直接来到Fireworks根目录2、直接运行我的 Firewo…

Word2016设置不同页边距有什么方法

Word2016设置不同页边距有什么方法

设置,边距,方法,教程,有什么,  在文档中,我们经常要设置不同的页边距,有时候还需要自定义页边距,这样可以很好的排版。排版中时常需要设置页边距,这样可以让排版更加美观整洁。以下是小编为您带来的关于Word2016设置不同页边距的教程,希望对…

nodejs实现发出蜂鸣声音 | 系统报

nodejs实现发出蜂鸣声音 | 系统报

方法,系统,声音,蜂鸣,电脑软件,本文实例讲述了nodejs实现发出蜂鸣声音(系统报警声)的方法。分享给大家供大家参考,具体如下:nodejs 有时候需要发出报警声音,使用以下代码可以调用系统蜂鸣器发声process.stdout.write('\x07')另外附上我自己…

防止页面url缓存中ajax中post请求

防止页面url缓存中ajax中post请求

请求,处理方法,缓存,页面,电脑软件,防止页面url缓存中ajax中post请求的处理方法 一般我们在开发中经常会用到Ajax请求,异步发送请求,然后获取我们想要的数据,在Ajax中使用Get请求数据不会有页面缓存的问题,而使用POST请求可是有时候页面会缓…

ps处理如何设置颜色

ps处理如何设置颜色

方法,设置,颜色,如何设置,图片,  大家处理图片时一定要设置颜色,这样我们在ps中才可以方便使用。那么大家知道ps处理图片如何设置颜色吗?下面是小编整理的ps处理图片如何设置颜色的方法,希望能帮到大家!ps处理图片设置颜色的方法我们先是要…

Excel2007的新功能有哪些

Excel2007的新功能有哪些

新功能,有哪些,电脑软件,  Excel2007目前在市场使用率还是蛮高的,作为Excel2007的开版之作,还是要给大家说说Excel2007的新功能。以下是小编为您带来的关于Excel2007的新功能介绍,希望对您有所帮助。Excel2007的新功能介绍Excel 2007较之以…

在Word2007中如何新建样式在Word20

在Word2007中如何新建样式在Word20

步骤,方法,样式,电脑软件,strong,  在Word2007的空白文档窗口中,用户可以新建一种全新的样式。例如新的表格样式、新的列表样式等,操作步骤如下所述:下面由小编为您提供在Word2007中新建样式的技巧,希望能帮助您。Word2007中新建样式步骤第1…