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不生效_静态资源加载失败修复技巧【技巧】