J'ai un tableau d'objets ObjectsArr= [Object1 , Object2,Object3, Object4]
Je veux montrer dans ma vue le dernier objet, comment faire cela dans angularjs?
ObjectsArr[ObjectsArr.length - 1]
- cela vous donnera le dernier élément du tableau.
Pour l'afficher dans la vue: {{ObjectsArr[ObjectsArr.length - 1]}}
Cela fonctionnera même lorsque le tableau ne contient aucune entrée.
Vous pouvez utiliser la directive ng-if et vérifier si element est last by:
ng-if="$last"
s'il vous plaît voir la démo ci-dessous
var app = angular.module('app', ['ui.bootstrap']);
app.controller('homeCtrl', function ($scope) {
$scope.data = [1,2,3]
});
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.0/ui-bootstrap-tpls.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body >
<div ng-app="app">
<div ng-controller="homeCtrl">
<ul>
<li ng-repeat="item in data" ng-if="$last">{{item}}</li>
</ul>
</div>
</div>
</body>
</html>
Pour utiliser Arrays, je recommande Lodash ou Underscore .. Cela vous fera gagner beaucoup de temps.
Les deux ont la dernière méthode:
_.last([1, 2, 3]); //Will return 3
Voir les liens pour l'API et l'installation.
En ce qui concerne l'affichage du résultat dans la vue, vous pouvez affecter une variable d'étendue dans le contrôleur approprié pour le résultat et l'afficher.
Manette:
$scope.lastItem = _.last(array);
Vue:
{{lastItem}}
vous pouvez utiliser l'inverse!
count = [0,1,2,3]
count.reverse()
//[3,2,1,0]
count[0];
// 3