`
hudeyong926
  • 浏览: 2034862 次
  • 来自: 武汉
社区版块
存档分类
最新评论

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

 
阅读更多

angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种。要实现的功能是,在ng-app中定义的全局变量,在不同的ng-controller里都可以使用。

1,通过var 直接定义global variable,这根纯js是一样的。

2,用angularjs value来设置全局变量 。

3,用angularjs constant来设置全局变量 。

下面用一个例子,来说明,上面3种方法:

'use strict';
/* App Module */
var test2 = 'tank';         //方法1,定义全局变量

var phonecatApp = angular.module('phonecatApp', []);

phonecatApp.value('test',{"test":"test222","test1":"test111"});  //方法2定义全局变量

phonecatApp.constant('constanttest', 'this is constanttest');    //方法3定义全局变量

 2,在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,赋值
  }]);

 value只能注入controller,factory,service等 constant可以注入任何方法

value vs. constant

$provide.value('pageCount', 7);
$provide.constant('pageCount', 7);

区别一:value可以被修改,constant一旦声明无法被修改

$provide.decorator('pageCount', function($delegate) {
    return $delegate + 1;
});

 decorator可以用来修改(修饰)已定义的provider们,除了constant

区别二:value不可在config里注入,constant可以

myApp.config(function(pageCount){
    //可以得到constant定义的'pageCount'
});

 关于config,之后会专门介绍

 

全局方法

var TestCtrl = function $scope,facetorytest,servicetest) {  
    $scope.facetorytest = facetorytest.firstname+" "+facetorytest.lastname();  
    $scope.servicetest = servicetest.firstname+" "+servicetest.lastname();  
} 

var searchAndShow = function($scope, $routeParams, $location) {
  show($scope, $routeParams);
  $scope.search = function(){
    $location.search($scope.searchData).replace();
  }
}

 啥地方萨芬

 
 
分享到:
评论

相关推荐

    Angularjs 设置全局变量的方法总结

    以下是AngularJS设置全局变量的三种主要方法: 1. **通过`var`定义全局变量(JavaScript方式)** 这是最基础的方法,与普通的JavaScript代码相同。在应用程序的任何地方,通过`var`关键字声明一个变量,即可在全局...

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

    - **方法3**:使用`angularjs constant`创建全局变量。`constant`与`value`类似,但一旦定义就不能被修改。例如: ```javascript phonecatApp.constant('constanttest', 'this is constanttest'); ``` 2. **...

    Angularjs全局变量被作用域监听的正确姿势

    监听全局变量的方法主要有两种: 1. 使用`$rootScope.$watch`直接监听全局变量: ```javascript $scope.$watch($rootScope.xxx, function(newVal, oldVal) { // do something }); ``` 这种方式的好处在于,...

    AngularJS 监听变量变化的实现方法

    在AngularJS中,监听变量变化是一项重要的功能,它允许开发者在特定变量的值发生变化时执行相应的操作。在本文中,我们将深入探讨如何在AngularJS中实现变量变化的监听。 AngularJS提供了一个名为`$watch`的服务,...

    AngularJS全局scope与Isolate scope通信用法示例

    AngularJS中有两种类型的作用域:全局作用域和隔离作用域(Isolate scope)。 1. 全局作用域 全局作用域是由$rootScope对象所定义的作用域。在AngularJS应用中,只有一个$rootScope实例,它作为所有其他作用域的...

    AngularJS 之Hello World篇

    AngularJS的依赖注入机制使得我们可以轻松地在控制器之间共享服务,如 `$http` 服务用于异步通信,或者 `$rootScope` 用于全局变量。在这个简单的示例中,虽然没有直接使用这些服务,但它们是AngularJS框架中的重要...

    Angularjs-echarts 点击事件

    Angular-echarts是 wangshijun对echarts利用Angular封装的组件,github地址https://github.com/wangshijun/angular-echarts。附件只是在源码例子里上添加了点击事件。

    angularjs实现上传图片并且预览

    在实现图片上传和预览的过程中,我们可能需要用到$http服务进行Ajax请求,以及$rootScope服务来共享全局变量。 1. **创建表单和HTML元素**:在HTML页面中,我们需要创建一个表单用于文件输入,通常我们会使用`...

    angularjs实现的checkbox多选、全选、反选

    在控制器中,我们需要一些全局变量来跟踪当前选中的项和全选状态。例如,`selectedItems`数组可以存储所有选中的项,而`allSelected`布尔值表示是否全选。 6. **事件监听**: 使用`ngChange`指令,我们可以监听复...

    Angularjs的启动过程分析

    AngularJS使用自执行函数的形式来封装其功能,防止全局变量污染。在AngularJS的自执行函数中,首先会在window对象上暴露一个唯一的全局对象angular。这个angular对象是整个AngularJS框架的核心,通过它可以访问...

    AngularJS模块化开发--增删改查

    在大型项目中,代码的组织和管理至关重要,RequireJS可以帮助我们按需加载模块,避免全局变量污染,提升代码可维护性。在"AngularJS模块化开发"中,RequireJS将作为入口点,管理和加载其他模块,如AngularJS库、...

    AngularJS 0005:作用域

    在全局范围内定义的变量和方法在整个应用中都可访问。 2. **$scope**: 普通作用域,通常与控制器关联,用于管理特定视图的数据。 **数据绑定** AngularJS中的数据绑定是双向的,这意味着视图和模型之间的任何变化...

    AngularJS与RequireJS集成

    1. **模块化**:AMD规范允许异步加载和定义模块,避免了全局变量污染。 2. **依赖管理**:通过require方法按需加载模块,自动处理依赖关系。 3. **优化工具**:r.js可以将多个JavaScript文件合并成一个,减少HTTP...

    简述AngularJS相关的一些编程思想

    这不仅避免了全局变量可能引起的命名冲突和难以调试的问题,而且使得代码结构更清晰,更容易维护。 在学习和使用AngularJS的过程中,理解和掌握这些核心思想对于编写高效、可维护的代码至关重要。通过实践这些编程...

    AngularJS内置指令

    你可以使用$rootScope来共享全局变量或函数,但应该谨慎使用,以避免创建难以追踪的全局状态。 对于作用域问题,AngularJS中的作用域是以原型继承的方式工作的。当ng-controller指令被应用时,它会创建一个新的子...

    AngularJS入门教程之服务(Service)

    AngularJS服务可以理解为在应用的全局范围内共享方法和变量的容器,它们是可注入的,这意味着你可以在需要的地方,如控制器(Controllers)、指令(Directives)、过滤器(Filters)等中,注入服务并使用它们所提供...

Global site tag (gtag.js) - Google Analytics