2016-08-05 6 views
0

角度jsプロバイダを使用してページを読み込む前にデータを取得するような要件があります。実装していない方は助けてください。anglejsプロバイダでページを読み込む前にデータを取得する方法

これは私のコードは、ページがロードする前にデータをロードしたい場合は、それを介して

hiregridApp.provider('organizationService', function() { 
    return { 
    getOrganization: ['$http', '$location', 
     function($http, $location) { 
     $http({ 
      method: 'GET', 
      url: http: //dev.api.hiregrid.io/api/customer/token/hiregrid', 
     }).success(function(data) { 
      $log.log(data); 
     }).error(function(error, status) { 
      $routeParams.code = status; 
      $location.path('/error/' + $routeParams.code); 
     }); 
     } 
    ] 
    }, this.$get: ['$http', '$location', 
    function($http, $location) { 
     var obj = ''; 
     alert("hai"); 
     obj.getOrganization = function() { 
     $http({ 
      method: 'GET', 
      url: 'http://dev.api.hiregrid.io/csbuilder- api/api/csbuilder/hiregrid', 
     }).success(function(data) { 
      $log.log(data); 
     }).error(function(error, status) { 
      $routeParams.code = status; 
      $location.path('/error/' + $routeParams.code); 
     }); 
     return obj; 
     } 
    } 
    ]; 
}); 
hiregridApp.config(function(organizationServiceProvider) { 
    console.log(organizationServiceProvider); 
    organizationServiceProvider.getOrganization("http://dev.api.hiregrid.io"); 
}); 
+0

この機能は、すでに 'ngRoute'またはサードパーティ製のルータ' UI-router'で 'resolve'パラメータによって提供されます。手作業で解決しようとすると、非同期メソッドの深い理解なしには非常に困難になります。 – Claies

答えて

0

を行くルーターの内側resolveを使用してくださいです。そのためにはプロバイダは必要ありません。 についてresolveここをクリックしてくださいangular router

0

ルーティングでデータを解決できるので、ページに移動してデータを解決してからナビゲートすることができます。 サーバーが応答に時間がかかる場合は、サーバーが約束を解決するまでナビゲートしないことに注意してください。

ルーターの設定がある場所で、プロバイダを使用することができます。

angular.module ('app',[]).config (function(yourProvider){}) 
0
var config = { headers : {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8;'}}; 
    App.provider('organizationService', ['$http', 
    function($http) { 
     return { 
      getOrganization: function(){ 
       $http.get("http: //dev.api.hiregrid.io/api/customer/token/hiregrid",config) 
       .success(function(data) { 
     $log.log(data); 
    }).error(function(error, status) { 
     $routeParams.code = status; 
     $location.path('/error/' + $routeParams.code); 
    }); 
      } 
     } 
    } 
]); 
+0

App.controller( 'JobPositionCtrl'、function($ rootScope、$ scope、organizationService){} –

関連する問題