2017-09-02 60 views
0

我正在獲取角度js控制器中的數組。我能夠在控制器中獲得特別的價值。但我無法查看(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)得到那麼這將只顯示V A河不顯示var禁令。這是隻顯示V A [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

所有的JSON的首先不是一個有效的,改變它,

[{ 「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

是的。謝謝您的幫助。但我想要另外一個領域。現在我正在打包。但是Field的日期類似2017-10-01T02:00:00.000Z。我想轉換成。 YYYY-DD-MM @ HH:MM。我們可以用你的方法轉換嗎? –

+0

你可以使用moment.js或angular-moment庫進行轉換。 – 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> 

希望有所幫助。