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

AngularJS 異步解決實現(xiàn)方法

 更新時間:2017年06月12日 14:43:41   投稿:lqh  
這篇文章主要介紹了AngularJS 異步解決實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下

AngularJS 異步解決實現(xiàn)方法

Angular 的異步處理的真的很不錯?;谙V播的方式,并且可以向上傳遞,基本上解決了不同模塊,不同controller之間不方便異步的問題。

        場景一:通過回調(diào)函數(shù)進(jìn)行異步操作(該情況下不用消息廣播的機(jī)制)

        這種情況的特點是直接傳遞一個回調(diào)函數(shù)給異步操作就可以了,等異步操作完執(zhí)行回調(diào)。

        比如:controller通過server異步取數(shù)據(jù),等取完數(shù)據(jù)進(jìn)行一系列的操作,這個時候就可以把操作封裝到函數(shù)中,傳遞給異步操作函數(shù)。

        controller代碼片段舉例如下:

$scope.submit=function(){ 
  userService.login($scope.user.loginname.value,$scope.user.password.value,function(data){ 
    if(data.success){ 
      location.href = '../../views/main/index.html'; 
    }else{ 
      $scope.user.error.tip=data.msg; 
    } 
  }); 
}; 

         最后一個參數(shù)即為回調(diào)函數(shù)

         server代碼片段舉例如下:

return { 
    http:$http, 
  token:'', 
  auth:[], 
  loginname:'', 
  login:function(loginname,password,fn){ 
     this.http({ 
    url:'../../scripts/loginModule/services/loginOKTest.js', 
    method:'GET' 
     }) 
     .success(function(data){ 
     if(data[0].success){ 
       ... 
           //調(diào)用回調(diào)方法 
           fn(data[0]); 
     } 
      }) 
     .error(function(data,header,config,status){ 
    alert("驗證服務(wù)請求失?。?); 
     }); 
  } 
} 

         場景二:沒有傳遞回調(diào)函數(shù)的地方,這個時候就必須用到消息廣播的機(jī)制。

         比如:我的controller通過server異步獲取數(shù)據(jù),這個時候我用回調(diào)函數(shù)保證取到數(shù)據(jù)后做后續(xù)操作。但是我的后續(xù)操作需要通過指令進(jìn)行DOM的生成。這個時候我們是沒有辦法直接調(diào)用指令的link或者compile的。這個時候我們需要用到廣播$scope.$broadcast。發(fā)送廣播以后,需要通過$scope.$on進(jìn)行監(jiān)聽。

         controller代碼片段舉例如下:

//通過categoryService異步取數(shù)據(jù) 
categoryService.initCategory(loginname,token,function(category){ 
    $scope.category=category; 
    $scope.$broadcast("categoryLoaded"); 
}); 

         service代碼片段舉例如下:


initCategory:function(loginname,token,fn){ 
  this.http({ 
  url:'../../scripts/mainModule/services/mainCategory.js', 
  method:'GET' 
  }).success(function(data,header,config,status){ 
    fn(data); 
    }).error(function(data,header,config,status){ 
    alert("驗證服務(wù)請求失?。?); 
  }); 
} 

         directive代碼片段舉例如下:

 link:function ($scope, $elem, attrs) { 
   $scope.$on("categoryLoaded", function (event, args) { 
      //$scope.category即為異步獲取的數(shù)據(jù) 
   } 
} 

最后,如果我們在這個controller中需要調(diào)用另外一個模塊的指令的link或者compile或者另一個模塊的controller怎么辦。我們需要通過依賴注入$rootScope服務(wù),因為他是所有作用域的父,然后調(diào)用$emit這個服務(wù)進(jìn)行廣播。指令中通過$rootScope.$on進(jìn)行接收即可。

        模塊1(app.video)中的controller代碼片段舉例如下:

$scope.replay=function(id){ 
  console.log("click replay id:"+id); 
  clearReply(); 
  //通過$rootScope廣播消息給app.dialog模塊的controller 
  $rootScope.$emit("openTemplate","reply.html"); 
}; 

       模塊2(app.dialog)中的controller代碼片段舉例如下:


$rootScope.$on('openTemplate',function(event, toState, toParams, fromState, fromParams){ 
    $scope.openTemplate(toState); 
}); 
     
$scope.openTemplate = function (url) { 
    if(!url) 
      url="/ZVideo-MVC/dialog/defaultTemplate.html"; 
    $scope.value = true; 
    ngDialog.open({ 
      template: url, 
      className: 'ngdialog-theme-plain', 
      scope: $scope 
    }); 
}; 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • AngularJS 中的事件詳解

    AngularJS 中的事件詳解

    本文主要介紹AngularJS 事件,這里整理了相關(guān)資料,比較詳細(xì)的介紹了AngularJS的使用方法,有需要的小伙伴參考下
    2016-07-07
  • 淺談Angularjs link和compile的使用區(qū)別

    淺談Angularjs link和compile的使用區(qū)別

    下面小編就為大家?guī)硪黄獪\談Angularjs link和compile的使用區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • angular.js和vue.js中實現(xiàn)函數(shù)去抖示例(debounce)

    angular.js和vue.js中實現(xiàn)函數(shù)去抖示例(debounce)

    這篇文章主要介紹了angular.js和vue.js中實現(xiàn)函數(shù)去抖示例(debounce),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 使用AngularJS 跨站請求如何解決jsonp請求問題

    使用AngularJS 跨站請求如何解決jsonp請求問題

    這篇文章主要介紹了使用AngularJS 跨站請求如何解決jsonp請求問題,下面通過本文給大家分享解決辦法,需要的朋友參考下
    2017-01-01
  • AngularJS頁面帶參跳轉(zhuǎn)及參數(shù)解析操作示例

    AngularJS頁面帶參跳轉(zhuǎn)及參數(shù)解析操作示例

    這篇文章主要介紹了AngularJS頁面帶參跳轉(zhuǎn)及參數(shù)解析操作,結(jié)合具體實例形式分析了AngularJS使用URL傳遞參數(shù)及參數(shù)的接收、解析等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • 深入淺析angular和vue還有jquery的區(qū)別

    深入淺析angular和vue還有jquery的區(qū)別

    vue是一個漸進(jìn)式的框架, 是一個輕量級的框架而angular是一個mvc框架, 各有千秋,下面小編通過本文給大家介紹angular和vue還有jquery的區(qū)別,感興趣的朋友一起看看吧
    2018-08-08
  • 收藏AngularJS中最重要的核心功能

    收藏AngularJS中最重要的核心功能

    本文是小編日常收集整理的關(guān)于:AngularJS中最重要的核心功能,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-07-07
  • AngularJS 使用$sce控制代碼安全檢查

    AngularJS 使用$sce控制代碼安全檢查

    SCE,即strict contextual escaping,我的理解是 嚴(yán)格的上下文隔離 ...翻譯的可能不準(zhǔn)確,但是通過字面理解,應(yīng)該是angularjs嚴(yán)格的控制上下文訪問,通過本文給大家介紹AngularJS 使用$sce控制代碼安全檢查,對angularjs sce相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 詳解angular路由高亮之RouterLinkActive

    詳解angular路由高亮之RouterLinkActive

    這篇文章主要介紹了詳解angular路由高亮之RouterLinkActive,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • AngularJs表單校驗功能實例代碼

    AngularJs表單校驗功能實例代碼

    這篇文章主要介紹了AngularJs表單校驗功能實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-02-02

最新評論

中宁县| 小金县| 南投市| 顺平县| 宁阳县| 通州区| 莱芜市| 长沙市| 泾川县| 日照市| 周宁县| 桑植县| 拜城县| 镶黄旗| 富裕县| 张家口市| 荥经县| 巴南区| 海原县| 井陉县| 望江县| 盖州市| 酉阳| 屏东市| 洪泽县| 微博| 织金县| 彭泽县| 泾源县| 商水县| 教育| 桃江县| 前郭尔| 工布江达县| 巴塘县| 太湖县| 德州市| 浦县| 大丰市| 辉县市| 那坡县|