Как найти длину в AngularJS - PullRequest
0 голосов
/ 21 мая 2018
var app = angular.module('myApp', []);
app.controller('myctrl', function ($scope) {

    $scope.friends = [
      { name: "Peter", age: 20 },
      { name: "Pablo", age: 55 },
      { name: "Linda", age: 20 },
      { name: "Marta", age: 37 },
      { name: "Othello", age: 20 },
      { name: "Markus", age: 32 }
    ];

});

Возраст: 20 Я хочу узнать количество тех.Для этого я использовал ng-if , но я всегда нахожу длину индекса.Вы можете помочь?

У меня есть еще один вопрос.Мы хотим записать длину в значок данных.<ul ng-if="result.type=='mesh'" class="mdl-list__item-primary-content mdl-badge results-icon" data-badge={{len}}>

Я написал, но это не так.

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Похоже, вам нужен фильтр .Есть много разных способов, которыми вы можете применить его на своем входе.Вот один пример с флажком и установленным значением, например {'age':20}, который вы также можете динамически изменять:

var app = angular.module('myApp', []);
app.controller('myctrl', function($scope) {
  $scope.age = 20;
  $scope.c = true;
  $scope.friends = [
    { name: "Peter", age: 20 },
    { name: "Pablo", age: 55 },
    { name: "Linda", age: 20 },
    { name: "Marta", age: 37 },
    { name: "Othello", age: 20 },
    { name: "Markus", age: 32 }
  ];

});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body>

  <div ng-app="myApp" ng-controller="myctrl">

    <input type="checkbox" ng-model="c" /> <tt>age:{{age}}</tt>
    <br>
    <input type="range" name="range" ng-model="age" min="0" max="100">
    <hr>

    <div ng-repeat="f in filtered=(friends | filter: c ? {'age':age} : '')">
      {{f}}
    </div>
    <hr>
    Length: {{filtered.length}}

  </div>
</body>

</html>
0 голосов
/ 21 мая 2018

Использовать метод фильтра массива.Я добавил фрагмент кода.

var app = angular.module('myApp', []);
app.controller('myctrl', function ($scope) {

    $scope.friends = [
      { name: "Peter", age: 20 },
      { name: "Pablo", age: 55 },
      { name: "Linda", age: 20 },
      { name: "Marta", age: 37 },
      { name: "Othello", age: 20 },
      { name: "Markus", age: 32 }
    ];
    
    var len = $scope.friends.filter(function(friend){
       if( friend.age == 20 ){
           return friend;
       }
    }).length;
    
    console.log("length=" + len);

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myctrl"></div>

Вот лучший подход, использующий сервис $filter, представленный в angularjs.

var app = angular.module('myApp', []);
app.controller('myctrl', function ($scope, $filter) {

    $scope.friends = [
      { name: "Peter", age: 20 },
      { name: "Pablo", age: 55 },
      { name: "Linda", age: 20 },
      { name: "Marta", age: 37 },
      { name: "Othello", age: 20 },
      { name: "Markus", age: 32 }
    ];
    
    var len = $filter('filter')($scope.friends, {'age' : 20}).length;
    
    console.log("length=" + len);

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myctrl">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...