亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

處理服務中的$http響應

處理服務中的$http響應

慕后森 2019-06-21 13:48:36
處理服務中的$http響應我最近發表了一篇關于我面臨的問題的詳細描述。這里在這樣的時候。因為我無法發送一個真實的$http請求時,我使用超時值來模擬異步行為。從我的模型到視圖的數據綁定是正確的,這是在@glupy的幫助下進行的。現在,當我用$http而不是$timeout(在本地測試),我可以看到異步請求是成功的,并且data在我的服務中充滿了JSON的響應。但是,我的觀點并沒有更新。更新Plunkr這里
查看完整描述

3 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

因為它是異步的,所以$scope是在Ajax調用完成之前獲取數據。

你可以用$q在您的服務中創建promise并將其返回給控制器,控制器在then()反對promise.

為你服務,

app.factory('myService', function($http, $q) {
  var deffered = $q.defer();
  var data = [];  
  var myService = {};

  myService.async = function() {
    $http.get('test.json')
    .success(function (d) {
      data = d;
      console.log(d);
      deffered.resolve();
    });
    return deffered.promise;
  };
  myService.data = function() { return data; };

  return myService;});

然后,在您的控制器中:

app.controller('MainCtrl', function( myService,$scope) {
  myService.async().then(function() {
    $scope.data = myService.data();
  });});


查看完整回答
反對 回復 2019-06-21
  • 3 回答
  • 0 關注
  • 553 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號