2017-09-02 59 views
0

我想在一個ngrepeat中獲得兩個JSON數組值。如何從一個ngrepeat獲取兩個json值?

var app = angular.module('testApp',[]); 
 
app.controller('testCtrl',function($scope){ 
 
    $scope.res ={}; 
 
    $scope.res.fsus = [ 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "var" 
 
     }, 
 
     "time": { 
 
      "timeA": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     }, 
 
     "time": { 
 
      "timeA": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     }, 
 
     "time": { 
 
      "timeA": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "ban" 
 
     }, 
 
     "time": { 
 
      "timeA": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    } 
 
]; 
 

 
$scope.opts = []; 
 
angular.forEach($scope.res.fsus,function(key,value){ 
 
    if(($scope.opts.indexOf(key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode , 0)) <= -1){ $scope.opts.push(key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode); 
 
    }; 
 
if(($scope.opts.indexOf(key.statusMessageType.MasterConsignment.time.timeA , 0)) <= -1){ $scope.opts.push(key.statusMessageType.MasterConsignment.time.timeA); 
 
    }; 
 
}); 
 
    
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script> 
 
<body ng-app="testApp" ng-controller="testCtrl"> 
 
<li ng-repeat="test in opts"> 
 
    <span class="step"> {{test}} 
 
    </span> 
 
    <span class="title"> {{???}} 
 
    </span> 
 
</li> 
 
</body>

而且我也想改變這個時間YYYY-MM-DD @ HH:MM格式。

感謝您的幫助。

+0

嘿,這個答案有幫助嗎? – Sajeetharan

回答

0

你可以用狀態和時間使用angular.forEach創建一個對象,並使用在NG-重複

$scope.opts = []; 
angular.forEach($scope.res.fsus,function(key,value){ 
if((($scope.opts.indexOf(key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode , 0)) <= -1) && (key.statusMessageType.MasterConsignment.time)){ $scope.opts.push({'status':key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode,'time':key.statusMessageType.MasterConsignment.time.time}); 
    }; 
}); 

DEMO

var app = angular.module('testApp',[]); 
 
app.controller('testCtrl',function($scope){ 
 
    $scope.res ={}; 
 
    $scope.res.fsus = [ 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "var" 
 
     }, 
 
     "time": { 
 
      "time": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     }, 
 
     "time": { 
 
      "time": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "car" 
 
     }, 
 
     "time": { 
 
      "time": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    }, 
 
    { 
 
    "statusMessageType": { 
 
     "MasterConsignment": { 
 
     "ReportedStatus": { 
 
      "ReasonCode": "ban" 
 
     }, 
 
     "time": { 
 
      "time": "2017-10-01T10:15:00.000Z" 
 
     } 
 
     } 
 
    } 
 
    } 
 
]; 
 

 
$scope.opts = []; 
 
angular.forEach($scope.res.fsus,function(key,value){ 
 
if((($scope.opts.indexOf(key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode , 0)) <= -1) && (key.statusMessageType.MasterConsignment.time)){ $scope.opts.push({'status':key.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode,'time':key.statusMessageType.MasterConsignment.time.time}); 
 
    }; 
 
}); 
 
    
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script> 
 
<body ng-app="testApp" ng-controller="testCtrl"> 
 
<li ng-repeat="test in opts"> 
 
    <span class="step"> {{test.status}} 
 
    </span> 
 
    <span class="title"> {{test.time | date:'MM/dd/yyyy @ h:mma'}} 
 
    </span> 
 
</li> 
 
</body>

+0

它正在工作,但。這是給我的。重複值也。但之前的代碼刪除重複的值。 –

+0

你只需要添加支票 – Sajeetharan

+0

@Sajeestharan。感謝評論。但每件事情都與以前一樣。它應該是工作。 –

0

這可以幫助你:

var jsonArray='your json array here'; 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.6/angular.min.js"></script> 
    <body ng-app="testApp" ng-controller="testCtrl"> 
    <li ng-repeat="test in jsonArray"> 
     <span class="step"> {{test.statusMessageType.MasterConsignment.ReportedStatus.ReasonCode}} 
     </span> 
     <span class="title"> {{test.statusMessageType.MasterConsignment.time.timeA | date:'MM/dd/yyyy @ h:mma'}} 
     </span> 
    </li> 
    </body>