最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2017年06月28日 10:31:21   作者:小魏的馬仔  
這篇文章主要介紹了AngularJS基于provider實(shí)現(xiàn)全局變量的讀取和賦值方法,結(jié)合實(shí)例形式分析了AngularJS全局變量的聲明、賦值、讀取等相關(guān)使用技巧,需要的朋友可以參考下

本文實(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ú)需增加新的方法。

更多關(guān)于A(yíng)ngularJS相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《AngularJS指令操作技巧總結(jié)》、《AngularJS入門(mén)與進(jìn)階教程》及《AngularJS MVC架構(gòu)總結(jié)

希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • AngularJS的ng-click傳參的方法

    AngularJS的ng-click傳參的方法

    本篇文章主要介紹了AngularJS的ng-click傳參的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • angular組件間傳值測(cè)試的方法詳解

    angular組件間傳值測(cè)試的方法詳解

    這篇文章主要給大家介紹了關(guān)于如何測(cè)試angular組件間傳值的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用angular組件具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • AngularJS+bootstrap實(shí)現(xiàn)動(dòng)態(tài)選擇商品功能示例

    AngularJS+bootstrap實(shí)現(xiàn)動(dòng)態(tài)選擇商品功能示例

    這篇文章主要介紹了AngularJS+bootstrap實(shí)現(xiàn)動(dòng)態(tài)選擇商品功能,涉及AngularJS指令、事件響應(yīng)及頁(yè)面元素動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2017-05-05
  • AngularJS入門(mén)教程之雙向綁定詳解

    AngularJS入門(mén)教程之雙向綁定詳解

    本文主要介紹AngularJS 雙向綁定,這里整理了詳細(xì)的知識(shí)資料并講解,而且附有代碼示例,有興趣的小伙伴可以參考下
    2016-08-08
  • 詳解Angular調(diào)試技巧之報(bào)錯(cuò)404(not found)

    詳解Angular調(diào)試技巧之報(bào)錯(cuò)404(not found)

    本篇文章主要介紹了詳解Angular調(diào)試技巧之報(bào)錯(cuò)404(not found),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • AngularJS實(shí)現(xiàn)的錨點(diǎn)樓層跳轉(zhuǎn)功能示例

    AngularJS實(shí)現(xiàn)的錨點(diǎn)樓層跳轉(zhuǎn)功能示例

    這篇文章主要介紹了AngularJS實(shí)現(xiàn)的錨點(diǎn)樓層跳轉(zhuǎn)功能,涉及AngularJS事件響應(yīng)實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)功能的相關(guān)操作技巧,需要的朋友可以參考下
    2018-01-01
  • Angular X中使用ngrx的方法詳解(附源碼)

    Angular X中使用ngrx的方法詳解(附源碼)

    ngrx是一套利用RxJS的類(lèi)庫(kù),下面這篇文章主要給大家介紹了關(guān)于A(yíng)ngular X中使用ngrx的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07
  • Angular移動(dòng)端頁(yè)面input無(wú)法輸入的解決方法

    Angular移動(dòng)端頁(yè)面input無(wú)法輸入的解決方法

    下面小編就為大家?guī)?lái)一篇Angular移動(dòng)端頁(yè)面input無(wú)法輸入的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • AngularJs每天學(xué)習(xí)之總體介紹

    AngularJs每天學(xué)習(xí)之總體介紹

    這篇文章主要為大家詳細(xì)介紹了Angularjs總體介紹及數(shù)據(jù)綁定部分內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • AngularJS Bootstrap詳細(xì)介紹及實(shí)例代碼

    AngularJS Bootstrap詳細(xì)介紹及實(shí)例代碼

    本文主要介紹AngularJS Bootstrap,這兩對(duì)AngularJS Bootstrap的基礎(chǔ)知識(shí)做了詳細(xì)講解,并提供簡(jiǎn)單示例,有需要的小伙伴可以參考下
    2016-07-07

最新評(píng)論

政和县| 绥芬河市| 大化| 泌阳县| 昌平区| 瑞金市| 墨竹工卡县| 邵阳市| 肥东县| 乡宁县| 湖口县| 南康市| 辉南县| 临泉县| 盖州市| 高邑县| 黑水县| 安达市| 神木县| 江油市| 清徐县| 万宁市| 大石桥市| 和硕县| 西平县| 陕西省| 柘荣县| 鄯善县| 织金县| 潼南县| 怀安县| 滦南县| 绥滨县| 高州市| 嘉义市| 海林市| 鹰潭市| 东安县| 美姑县| 青海省| 泸定县|