###行いたいこと
Angular JS 1.5.8とUI Gridを使用して開発しております。
今までcontrollerで行っていたRESTサーバへのアクセスをservice化し、
共通利用化しようと考えております。
しかし、serviceでのRESTサーバへのアクセス、データの取得まで
はできるのですが、serviceからcontrollerへのデータ戻しができないで
おります。
###コード
■現在動作しているコード = 現在のcontroller上のRESTサーバアクセスコード
JavaScript
1//controller 2 //RESTサーバからデータ取得 3 $scope.d4API = $resource("http://127.0.0.1/dataHyojiList", { 4 callback: 'JSON_CALLBACK' 5 }, { 6 get: { 7 method: 'JSONP' 8 } 9 }); 10 11 $scope.d4API.get({tgt: 'hyojiData'}).$promise.then( 12 function (data) { 13 //データ取得成功 14 $scope.gridOptions.data = data.list; 15 }, 16 function (error) { 17 //データ取得失敗 18 console.log('データ取得失敗'); 19 } 20 ); 21
■サービス化した後のコード
JavaScript
1 2//controller 3/* 4 データを取得し、Ui Gridの表示データとする 5$scope.gridOptions.dataにデータが入ればUI Gridにデータが表示される 6*/ 7 $scope.gridOptions.data = getGrdDataSrvc.getGridData('hyojiData');
JavaScript
1 2//service 3 4/* 5 データを取得し、呼びだし元のcontrollerへ戻す 6*/ 7myApp.service('getGrdDataSrvc', ['$resource', function ($resource) { 8 this.getGridData = function (tgtName) { 9 var d4API = $resource("http://127.0.0.1/dataHyojiList", { 10 callback: 'JSON_CALLBACK' 11 }, { 12 get: { 13 method: 'JSONP' 14 } 15 }); 16 17 d4API.get({tgt: tgtName}).$promise.then( 18 function (data) { 19 //データ取得成功 20 return data.list; //←この時点では、「data」に取得データしたはある=データは取得できている(デバッガで確認済) 21 }, 22 function (error) { 23 //データ取得失敗 24 console.log('データ取得失敗'); 25 } 26 ); 27 } 28}]);
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/23 07:00
2016/09/23 07:03
2016/09/23 13:11