AngularJS сортировка по значению поля

0

То, что я пытаюсь сделать, это отсортировать некоторые данные по значению поля.

$scope.testarr = [{"id":"1","name":"coffee"},
                  {"id":"2","name":"tea"},
                  {"id":"3","name":"coffee"},
                  {"id":"4","name":"ice coffee"}]

в html файле у меня есть поле выбора и 3 варианта: кофе, чай и ледяной кофе,

если я выбираю кофе, его следует сортировать следующим образом:

   $scope.testarr = [{"id":"1","name":"coffee"},
                      {"id":"3","name":"coffee"},
                      {"id":"2","name":"tea"},
                      {"id":"4","name":"ice coffee"}]

если я выбираю чай, следует сортировать так

   $scope.testarr = [
                      {"id":"2","name":"tea"},
                      {"id":"1","name":"coffee"},
                      {"id":"3","name":"coffee"},
                      {"id":"4","name":"ice coffee"}]

Я пытаюсь использовать порядок, но как-то это не работает

<div ng-repeat="item in testarr | orderBy: 'name'">
     {{item.id}} ------ {{item.name}}
</div>
  • 0
    Консоль показывает ошибку?
  • 0
    без ошибок это не так, как я хотел
Показать ещё 7 комментариев
Теги:
angularjs-orderby

1 ответ

0

Кажется, он работает. Убедитесь, что ваш ng-repeat имеет доступ к $scope.testarr (т. $scope.testarr Он объявляется в вашей области $scope в правильном контроллере или директиве.

angular.module('app', [])
  .controller('ctrl', function($scope) {
    $scope.testarr = [{
      "id": "1",
      "name": "coffee"
    }, {
      "id": "2",
      "name": "tea"
    }, {
      "id": "3",
      "name": "coffee"
    }, {
      "id": "4",
      "name": "ice coffee"
    }];
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app">
  <div ng-controller="ctrl">
    <div ng-repeat="item in testarr | orderBy: 'name'">
      {{item.id}} ------ {{item.name}}
    </div>
  </div>
</div>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню