2016-08-29 5 views
0

これは私が工場を実装して初めてのことですが、それは非常にマイナーなもののように見えますが、何ができるのかを正確に突き止めるようです。私のコントローラのangular.factoryから配列を取得しています

私の工場コード:

angular.module('dashboardApp').factory('randomNumberService', function($http) { 
var num, min, max, col, base, format, md, myData; 
var numbersArray = []; 
var newArrayTwo = [ 
    [], 
    [] 
]; 
var getRandom = { 
    myNumbers: [] 
}; 
getRandom.numbers = function() { 

    $http({ 
     method: 'GET', 
     url: 'https://www.random.org/integers/', 
     params: { num: 14, min: 9, max: 80, col: 1, base: 10, format: 'plain', md: 'new' } 
    }).success(function(response, data, status, config) { 
     numbersArray = response.split(response.charAt(2)); 
     console.log(numbersArray[0]); 
     angular.copy(numbersArray, getRandom.myNumbers); 
    }).error(function(data, status) { 
     //error code here 
    }); 
} 
return getRandom; 

})。私のコントローラからそれを呼び出す

とイム:私は配列(MYDATA)をCONSOLE.LOGとき

randomNumberService.numbers(); 
var myData = randomNumberService.myNumbers; 

は、基本的には私が配列を表示するために展開する必要がブラケットを示しています。 Theres少し少し私はそれを "私はそれが未定義と言うconsole.log myData [0]しようとすると、"左側にオブジェクトの値がスナップショットされた "と言うときにホバー。インデックスなしで配列全体が表示されたら、どうやって定義できないのですか?

答えて

0

あなたはうまくやっているようです。

<pre>{{myData | json}}</pre> 

それはページ

0

に表示されているものを参照してください:あなたはページ上の結果を見たい場合は

は、最初にHTMLでスコープ

$scope.myData = randomNumberService.myNumbers; 

に価値を置きます工場でもっとうまくいく: たとえば$ q:

angular.module('dashboardApp') 
    .factory('randomNumberService', function($http, $q) { 
    var num, min, max, col, base, format, md, myData; 
    var numbersArray = []; 
    var newArrayTwo = [[],[]]; 

    return { 
     getNumbers: function(){ 
      var defer = $q.defer(); 
      $http({ 
        method: 'GET', 
        url: 'https://www.random.org/integers/', 
        params: { num: 14, min: 9, max: 80, col: 1, base: 10, format: 'plain', md: 'new' } 
       }) 
      .success(function(response, data, status, config) { 
        numbersArray = response.split(response.charAt(2)); 
        defer.resolve(numbersArray); 
       }).error(function(data, status) { 
        defer.reject(); 
       }); 

      return defer.promise; 
     } 
    } 

コントローラ内:

randomNumberService.getNumbers() 
.then(function(data){ 
    $scope.myData = data; 
}); 
関連する問題