2017-09-02 1 views
0

私は角度のコントローラにキーの配列を取得しています。そして私はコントローラで特定の価値を得ることができます。しかし私は見ることができません(HTML)。配列キーの値は、角度jsのコントローラからhtmlになりますか?

コントローラー:このループで

var statusLength= res.fsus.length; 
for(var i=0; i<statusLength; i++) 
{  
     $scope.opts=res.fsus[i].statusMessageType.MasterConsignment.ReportedStatus.ReasonCode 

} 

私は特定の値を取得することができています。ビュー(HTML)部分にこれらの値を表示したい。私は角度のあるjsで新しいです。私は正しいことをしているかどうかわからない。

値はループ

VAR

禁止

しかし、私はUI(HTML)で取得しようとしたときに、それが唯一のR vの表示になるです。 var car banを表示していません。それはあなたのアイデアを共有してくださいだけV Rに

HTML

<li ng-repeat=" opt in opts"> 
     <span class="step">{{opt}}</span> 
</li> 

JSON

fsus[{ 
    statusMessageType:{ 
     MasterConsignment:{ 
      ReportedStatus:{ 
      ReasonCode:"var" 
      } 
      } 
     }, 
    statusMessageType:{ 
     MasterConsignment:{ 
      ReportedStatus:{ 
      ReasonCode:"car" 
      } 
      } 
     }, 
    statusMessageType:{ 
     MasterConsignment:{ 
      ReportedStatus:{ 
      ReasonCode:"ban" 
      } 
      } 
     }, 
}] 

が表示されています。おかげ

答えて

1

まず、としてそれを変更、有効なものではありません

[{ "statusMessageType":{ "MasterConsignment":{ "ReportedStatus":{ "reasonCodeは": "VAR" }} }}、{ "statusMessageType":{ "MasterConsignment":{ "ReportedStatus":{ "reasonCodeは": "車" }} }}、{ "statusMessageType":{ "MasterConsignment":{ "ReportedStatus":{ "reasonCodeは": "禁止" } } }}]

を使用でき

ng-

<li ng-repeat="test in res.fsus track by $index"> 
     <span class="step"> {{test.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode}} 
     </span> 
</li> 

DEMOオプションを表示するには、$インデックスでトラックに繰り返し

var app = angular.module('testApp',[]); 
 
app.controller('testCtrl',function($scope){ 
 
    $scope.res ={}; 
 
    $scope.res.fsus = [ 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "var" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "ban" 
 
     } 
 
     } 
 
    } 
 
    } 
 
]; 
 
    
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="testApp" ng-controller="testCtrl"> 
 
<li ng-repeat="test in res.fsus track by $index"> 
 
    <span class="step"> {{test.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode}} 
 
    </span> 
 
</li> 
 
</body>

+0

回答が役に立ちましたか? – Sajeetharan

+0

はい。助けてくれてありがとう。しかし、私は別のフィールドを取得したい。今私は手に取るベールです。しかし、フィールドは2017-10-01T02:00:00.000Zのような日付です。私はに変換したい。 YYYY-DD-MM @ HH:MM。私たちはあなたのアプローチに変換することができますか? –

+0

あなたはmoment.jsまたは角モーメントライブラリを使用して変換することができます。 – Sajeetharan

0

私はあなたが配列のようopts変数を埋めるために必要があると思う:

$scope.opts = []; //define empty array 
var statusLength = res.fsus.length; 

for(var i=0; i<statusLength; i++) 
{  
    // insert into array 
    $scope.opts[i] = res.fsus[i].statusMessageType.MasterConsignment.ReportedStatus.ReasonCode 
} 
0

テンプレートでループしている何が間違っている:

あなたはループfsus値は、ReasonCodeが表示されます

// Put fsus in $scope 
$scope.fsus = res.fsus; 

テンプレート内:

<li ng-repeat="statusMessageType in fsus"> 
    <span class="step"> 
    {{statusMessageType.MasterConsignment.ReportedStatus.ReasonCode}} 
    </span> 
</li> 

希望すること。すべてのJSONの

関連する問題