web-dev-qa-db-fra.com

Comment obtenir le dernier enregistrement d'un tableau dans AngularJS

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?

15
Besa

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. 

27
Vinay K

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>

19
sylwester

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}}
12
Or Guz

vous pouvez utiliser l'inverse!

count = [0,1,2,3]

count.reverse() 
//[3,2,1,0]

count[0];   
// 3
0
Hossein Aghatabar