2016-11-22 3 views
2

のうち、JSONの配列を取得するためにはどのようにJSONにかなり新たなんだとangularJSのリクエスト結果を得る「ステップ」という名前の配列と、このJSON文字列「ステップ」を抽出しようとしています:は、オブジェクト

Payload

Payload.data

しかし、私は(未定義またはエラー与えるもの)以下を試みることによって、この情報を取得することはできません。

payload.data.steps 
payload.data.steps[0].step 
payload.data[0].steps 

任意のGUIダンスは感謝します!

ソルブード 皆さんありがとうございました。私は、非同期http.get結果を含むものを含むいくつかの間違いをしていました。今後の参考のために

は、私のservices.jsに私は自分のコントローラにこのようGETリクエストを渡さ:

var recipes = payload.data[0].steps; 

を、私のcontroller.jsに私は、コールが戻ってくるのは待つ持っていることを確認しました個別の手順を表示するには、

RecipeDetails.getInstructions($scope.details.id).then(function(InstructionPayload){ 
     $scope.instructions = InstructionPayload; 

と私のHTMLページで:(むしろ約束を受けるよりも)、その後、スコープに保存し

//Steps: 
<div ng-repeat="list in instructions track by $index"> 
<p>{{ list.step }}</p> 
+0

'payload.data [0] .steps'うまくいくはずです。 pastebin.comでソースjsonをホストできるので、さらに分析することができますか? –

+0

'fiddle'や' plnkr'でコードを共有できますか? –

+0

payload.data [0] .stepsはコントローラではなくservices.jsファイルで実行します。ありがとうございました。 – parynaz

答えて

0

ここで簡単に説明します。必要に応じていつでも更新できます。

function exampleController($scope) { 
 
    $scope.example = [{ 
 
    name: "", 
 
    steps: [{ 
 
     equipment: [], 
 
     ingredients: [], 
 
     number: 1, 
 
     step: 'Blah' 
 
    }] 
 
    }, { 
 
    name: "", 
 
    steps: [{ 
 
     equipment: [], 
 
     ingredients: [], 
 
     number: 2, 
 
     step: 'Bibbidi' 
 
    }] 
 
    }, { 
 
    name: "", 
 
    steps: [{ 
 
     equipment: [], 
 
     ingredients: [], 
 
     number: 3, 
 
     step: 'Bobbidi' 
 
    }] 
 
    }, { 
 
    name: "", 
 
    steps: [{ 
 
     equipment: [], 
 
     ingredients: [], 
 
     number: 4, 
 
     step: 'Boo' 
 
    }] 
 
    }]; 
 

 
    function extractSteps() { 
 
    $scope.stepArray = []; 
 
    $scope.example.forEach(function(step) { 
 
     if (step.steps && Array.isArray(step.steps)) { 
 
     step.steps.forEach(function(value, index) { 
 
      if (value && value.step) { 
 
      $scope.stepArray.push({ 
 
       'step': value.step 
 
      }) 
 
      } 
 
     }); 
 
     } 
 
    }); 
 
    } 
 
    extractSteps(); 
 
} 
 

 
angular 
 
    .module('app', []) 
 
    .controller('exampleController', exampleController);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div class="container-fluid" ng-app="app"> 
 
    <div class="container" ng-controller="exampleController"> 
 
    <div class="row" ng-repeat="(key, value) in example" ng-bind="value.steps[0].step"> 
 
    </div> 
 
    <div class="row" ng-repeat="value in stepArray"> 
 
     <pre>{{value | json}}</pre> 
 
    </div> 
 
    </div> 
 
</div>

0

あなたがそうのように一緒にチェーンいくつかのことを、することができ、あなたのアプリケーションに下線やlodashしている場合:

_.chain(obj.data) // wrap the data so we can chain transformations 
    .map('steps') // gather all the steps arrays from the main array 
    .flatten() // smash them into a single array 
    .map('step') // grab all the step properties from those 
    .value() // return the value -> ["Blah", "Bibbidi", "Bobbidi", "Boo"] from alphapilgrim's example data 
関連する問題