2016-05-22 9 views
0


私にはサービスと少数のコントローラがあります。
サービスはポストリクエストを行い、コントローラはサーバから返されたデータを使用すると考えます。
残念ながらRightsMainService.rightsArrayはオブジェクトを含む配列を返し、すべてのオブジェクトには「未定義」フィールドしかありません。
また、RightsMainService.initは常にfalseです。 問題がどこにあるかわかりません。サービスからコントローラへのデータを使用する際の問題

app.service('RightsMainService', ['$http', '$rootScope', '$state', function($http, $rootScope, $state) { 

    var self = this; 

    this.rightsArray = []; 

    this.init = false; 

    this.loadRights = function(rightsObject) { 
     var config = { 
      headers : { 
       'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;' 
      } 
     }; 
     $http.post('./server/user.php', $.param(rightsObject), config) 
      .success(function(data,status, headers, config) { 
       self.rightsArray = data; 
       self.init = true; 
       $rootScope.$broadcast('finishLoadingEvent'); 
      }) 
      .error(function(data, status, header, config) { 
       alert(status + " " + header); 
       return; 
      }); 
     $state.go('rights'); 
    } 
}]); 



    app.controller('RightsMainCtrl', ['$scope', '$rootScope', 'RightsMainService', function($scope, $rootScope, RightsMainService) { 
    var rightsArrayInitialized = false; 
    var rightsArray = []; 
    (function Initialize(){ 
     if(RightsMainService.init == false) { 
      alert("init"); 
      $rootScope.$on('finishLoadingEvent', function() { 
       rightsArrayInitialized = true; 
       rightsArray = RightsMainService.rightsArray; 
       for(var key in rightsArray[0]) { 
        alert(rightsArray[key]); 
       } 
      }) 
     } else { 
      rightsArrayInitialized = true; 
      rightsArray = RightsMainService.rightsArray; 
      for(var key in rightsArray[0]) { 
       alert(rightsArray[key]); 
      } 
     } 
    })(); 
}]); 

警告を無視してください、彼らは$httpが完了する前に、$state.go('rights');を呼び出しているテストの目的のためにそこに

+0

「成功」機能で何が起こっているのか、実際にサーバーからデータがロードされているかどうかを知る必要があります。また、実際のネットワーク要求/応答のペアをブラウザーで調べて、期待されるものが含まれているかどうかを確認します。 – Stevo

+0

ねえ、それは正しいデータをロードし、正しく放送を送信します、私はそれを数回チェックしました。 私はサービス内のinit変数のfalse値を思いついていますが、コントローラは常にfalseと見なします。 –

答えて

0

です。全体的な流れのプロセスは実際には意味をなさない。

+0

Did notは$ state.goに気付きました。 –

関連する問題