AngularJS基于provider实现全局变量的读取和赋值方法
发布时间 - 2026-01-11 02:05:44 点击率:次本文实例讲述了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预编译和暗示全局变量
# 第一个
# 的是
# 进阶
# 相关内容
# 感兴趣
# 给大家
# 三种
# 不为
# 一个问题
# 更多关于
# 中对
# 才能够
# 所述
# 程序设计
# 进行了
# 这根
# 很对
# 这三种
# 操作技巧
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】
,南京靠谱的征婚网站?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Java遍历集合的三种方式
Laravel如何处理和验证JSON类型的数据库字段
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Laravel如何实现用户注册和登录?(Auth脚手架指南)
PHP正则匹配日期和时间(时间戳转换)的实例代码
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
详解Android——蓝牙技术 带你实现终端间数据传输
WEB开发之注册页面验证码倒计时代码的实现
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
QQ浏览器网页版登录入口 个人中心在线进入
Python文件异常处理策略_健壮性说明【指导】
EditPlus 正则表达式 实战(3)
想要更高端的建设网站,这些原则一定要坚持!
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel如何处理异常和错误?(Handler示例)
如何在阿里云虚拟服务器快速搭建网站?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
简单实现jsp分页
如何快速重置建站主机并恢复默认配置?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何快速搭建二级域名独立网站?
网页设计与网站制作内容,怎样注册网站?
Laravel distinct去重查询_Laravel Eloquent去重方法
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
iOS验证手机号的正则表达式
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何在VPS电脑上快速搭建网站?
Android okhttputils现在进度显示实例代码
Laravel如何配置和使用缓存?(Redis代码示例)
如何快速配置高效服务器建站软件?
中山网站制作网页,中山新生登记系统登记流程?
iOS中将个别页面强制横屏其他页面竖屏
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel中的withCount方法怎么高效统计关联模型数量
googleplay官方入口在哪里_Google Play官方商店快速入口指南
如何用搬瓦工VPS快速搭建个人网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】

