本文实例讲述了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程序设计有所帮助。
# AngularJS
# provider
# 全局变量
# 读取
# 赋值
# 实例讲解JavaScript预编译流程
# JavaScript 详解预编译原理
# JavaScript运行过程中的“预编译阶段”和“执行阶段”
# 通过JSP的预编译消除性能瓶颈
# JavaScript防止全局变量污染的方法总结
# JS全局变量和局部变量最新解析
# 浅谈JavaScript的全局变量与局部变量
# Angularjs全局变量被作用域监听的正确姿势
# javascript中局部变量和全局变量的区别详解
# 浅析JavaScript预编译和暗示全局变量
# 第一个
# 的是
# 进阶
# 相关内容
# 感兴趣
# 给大家
# 三种
# 不为
# 一个问题
# 更多关于
# 中对
# 才能够
# 所述
# 程序设计
# 进行了
# 这根
# 很对
# 这三种
# 操作技巧
相关文章:
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
西安大型网站制作公司,西安招聘网站最好的是哪个?
建站之星2.7模板快速切换与批量管理功能操作指南
如何选择高效可靠的多用户建站源码资源?
建站之星代理商如何保障技术支持与售后服务?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
如何设计高效校园网站?
如何做静态网页,sublimetext3.0制作静态网页?
太原网站制作公司有哪些,网约车营运证查询官网?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
常州企业建站如何选择最佳模板?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
教学网站制作软件,学习*后期制作的网站有哪些?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
网站专业制作公司有哪些,做一个公司网站要多少钱?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
如何高效利用亚马逊云主机搭建企业网站?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站主机选哪家性价比最高?
南宁网站建设制作定制,南宁网站建设可以定制吗?
微课制作网站有哪些,微课网怎么进?
建站之星logo尺寸如何设置最合适?
北京网站制作网页,网站升级改版需要多久?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
存储型VPS适合搭建中小型网站吗?
宝塔面板如何快速创建新站点?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
如何在Windows环境下新建FTP站点并设置权限?
已有域名和空间如何搭建网站?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
智能起名网站制作软件有哪些,制作logo的软件?
如何在IIS中新建站点并配置端口与物理路径?
如何在腾讯云免费申请建站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
头像制作网站在线制作软件,dw网页背景图像怎么设置?
音响网站制作视频教程,隆霸音响官方网站?
如何选择可靠的免备案建站服务器?
建站主机选择指南:服务器配置与SEO优化实战技巧
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
家庭建站与云服务器建站,如何选择更优?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站之星ASP如何实现CMS高效搭建与安全管理?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
如何配置支付宝与微信支付功能?
定制建站如何定义?其核心优势是什么?
*请认真填写需求信息,我们会在24小时内与您取得联系。