2017-10-12 9 views
0

私は$http.Getメソッドを通してサーバーからデータを取得する関数を持っています。データを受け取った後、別の機能で使用する必要があります。私はどのようにデータを使うことができるのですか?その後

var app = angular.module("app", []); 
    app.factory('itemsFactory', function ($http) { 
     var factory = {}; 
     factory.getItems = function() { 
      return $http.get('.//davidstrans.json') 
     }; 
     return factory; 
    }); 
    app.controller('UsersTransController', function ($scope, itemsFactory) { 
     itemsFactory.getItems().success(function (data) { 
      $scope.users = data; 
     });}); 

私は動的にタイプを取得する機能があります。この機能のための

function groupBy(arr, key) { 
      var newArr = [] 
       , types = {} 
       , newItem, i, j, cur; 
      for (i = 0, j = arr.length; i < j; i++) { 
       cur = arr[i]; 
       if (!(cur[key] in types)) { 
        types[cur[key]] = { 
         type: cur[key] 
         , data: [] 
        }; 
        newArr.push(types[cur[key]]); 
       } 
       types[cur[key]].data.push(cur); 
      } 
      return newArr; 
     }; 

私は$scope.users=data;値を使用する必要があります。 誰でも助けてくれますか?前もって感謝します。

+0

を; '?あなたの約束のコールバックの中でそれを呼び出すことを覚えておいてください。あるいは '$ scope.users'変数は定義されません。また、 'success'の代わりに' then(..) 'を使用します。なぜなら、' success'は非推奨になっているからです。 –

答えて

-1

に応じてコードを変更してください:

var app = angular.module("app", []); 
app.factory('itemsFactory', function ($http) { 
    var factory = {}; 
    factory.getItems = function (successCallBack,errorCallBack) { 
     $http({ 
    method: 'GET', 
    url: './/davidstrans.json' 
}).then(function(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
      successCallBack(response); 
    }, function(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
      errorCallBack(response); 
    }); 
    }; 
    return factory; 
}); 

とapp.controllerで: `$ scope.groupedUsers = GROUPBY($ scope.users、 'MYKEY')についてはどのよう

app.controller('UsersTransController', function ($scope, itemsFactory) { 
var successCallBack = function(data){ 
    $scope.users = data; 
} 
var errorCallBack = function (data){ 
    //if you want to show any error 
} 
    itemsFactory.getItems(successCallBack, errorCallBack); 
}); 
+0

これは反パターンです。このようにコールバックを渡さないでください。 OPが 'return $ http.get( '.// davidstrans.json')で既に何をしているのかはまったく問題ありません。 –

関連する問題