国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

AngularJS基于provider實(shí)現(xiàn)全局變量的讀取和賦值方法

2024-05-06 15:15:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文實(shí)例講述了AngularJS基于provider實(shí)現(xiàn)全局變量的讀取和賦值方法。分享給大家供大家參考,具體如下:

簡(jiǎn)單全局變量的設(shè)置

1,通過(guò)var 直接定義global variable,這根純js是一樣的。
2,用angularjs value來(lái)設(shè)置全局變量 。
3,用angularjs constant來(lái)設(shè)置全局變量 。

示例代碼如下:

在app文件中,聲明三種變量

'use strict';/* App Module */var test2 = 'tank';     //方法1,定義全局變量var phonecatApp = angular.module('phonecatApp', [   //定義一個(gè)ng-app 'ngRoute', 'phonecatControllers', 'tanktest']);phonecatApp.value('test',{"test":"test222","test1":"test111"}); //方法2定義全局變量phonecatApp.constant('constanttest', 'this is constanttest');  //方法3定義全局變量

在controller中對(duì)全局變量進(jìn)行讀取

'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,賦值 }]);

注意事項(xiàng)

var test;設(shè)置后,無(wú)需在controller聲明的時(shí)候注入,直接使用即可。

value和contant,在app中初始化后,需要在controller聲明時(shí)候注入到controller中,才能夠使用。

這三種方式都存在一個(gè)問(wèn)題,即只能夠讀取全局變量,無(wú)法對(duì)全局變量進(jìn)行修改賦值。在很對(duì)業(yè)務(wù)邏輯中無(wú)法滿(mǎn)足業(yè)務(wù)需求。

使用provider實(shí)現(xiàn)全局變量。

步驟與上面的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聲明的時(shí)候,注入。

app.controller('myCtrl1', function ($scope, userService) {  var data = userService(0, 0, false);//讀取全局變量}));app.controller('myCtrl2', function ($scope, userService) {  var data = userService(123, 111, true);//設(shè)置全局變量}));

通過(guò)provider提供的get方法,實(shí)現(xiàn)參數(shù)的讀取和賦值。

注意事項(xiàng)

代碼中,我們對(duì)provider 的賦值操作進(jìn)行了取巧設(shè)計(jì),當(dāng)?shù)谝粋€(gè)參數(shù)等于0的時(shí)候,默認(rèn)是讀取,當(dāng)?shù)谝粋€(gè)參數(shù)不為0的時(shí)候,實(shí)現(xiàn)的是設(shè)置后進(jìn)行讀取。這樣,公用一個(gè)get方法即可,無(wú)需增加新的方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 延津县| 红桥区| 新丰县| 临城县| 剑阁县| 灵寿县| 永平县| 大竹县| 定南县| 奉新县| 湟中县| 沈丘县| 鸡东县| 博罗县| 民权县| 大同县| 偃师市| 长垣县| 桑植县| 通化县| 金乡县| 夏邑县| 鄯善县| 巴里| 获嘉县| 洮南市| 容城县| 宝山区| 松滋市| 乳源| 尚志市| 天全县| 封开县| 古蔺县| 涞水县| 兴和县| 阳朔县| 铜陵市| 耒阳市| 夏河县| 司法|