angularjs中全局变量 constant 跟 value方法
angularjs中全局变量 constant 和 value方法
文章参考
http://blog.51yip.com/jsjquery/1601.html
对于一些不经常改变的内容,或者“控制开关”,我们希望能变为“全局变量”,在一处改变,其余的地方全部改变,方便控制管理。
1,通过var 直接定义global variable,这根纯js是一样的。
2,用angularjs value来设置全局变量 。
3,用angularjs constant来设置全局变量 。
'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定义全局变量 phonecatApp.config(['$routeProvider', //设置路由 function($routeProvider) { $routeProvider. when('/phones', { templateUrl: 'partials/phone-list.html' //这里没有设置controller,可以在模块中加上ng-controller }). when('/phones/:phoneId', { templateUrl: 'partials/phone-detail.html', controller: 'PhoneDetailCtrl' }). when('/login', { templateUrl: 'partials/login.html', controller: 'loginctrl' }). otherwise({ redirectTo: '/login' }); }]);
'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,赋值 }]);
<div data-ng-controller="PhoneListCtrl"> {{test.test1}} {{constanttest}} {{test2}} </div>
结果:test111 this is constanttest tank
------------------------------------------下面是我自己写的例子----------------------------------------------------------
/** * 定义常量,和配置文件,是不能修改的 * */ angular.module('hkApp') .constant('APP_CONFIG', { port: 80, //费用列表名字 costListName:["1111","2222","3333","44444","5555","6666","7777"] }); angular.module("hkApp").controller("incomeDetailReportController", ["$scope", "$state", 'MonthPicker','incomeDetailReportService','APP_CONFIG', function ($scope, $state,MonthPicker,incomeDetailReportService,APP_CONFIG) { alert(APP_CONFIG.costListName[2]);//3333 }]);