Фильтр повтора с ключом от родительского повтора

0

У меня есть это:

<div class="row" ng-repeat="(key, value) in categories">
    <h5>{{ value }}</h5>
    <ul>
        <li ng-repeat="post in $parent.posts | filter: key">{{ post.name }} -- {{ post.category }}</li>
    </ul>
</div>

Я хочу, чтобы вложенные ng-repeat сообщения были отфильтрованы key категории.

Идея состоит в том, чтобы каждое сообщение отображало связанные сообщения, где {{ post.category }} совпадает с {{ value }}

  • 0
    Возможный дубликат Как я могу перебрать ключи, значение в ng-repeat в угловых
  • 0
    @DurgpalSingh Нет, не дубликат. Мой вопрос заключается в том, как использовать key в первом ng-repeat в качестве фильтра для второго ng-repeat. Ссылка, которую вы дали, как это сделать (key, value) in dataset
Теги:

1 ответ

2
Лучший ответ

Это требование перебора object и фильтрации дочернего ng-repeat с использованием key of parent может быть достигнуто с помощью custom function которая, в свою очередь, возвращает объект. Проверьте пример приложения, созданного ниже.

var app = angular.module('sample', []);

app.controller('samplecontroller', function($scope) {

  $scope.filterKey = function(value) {
    return {
      name: value
    };
  };

  $scope.categories = {
    'John': 'English'
  };
  $scope.posts = [{
    name: 'John',
    category: 'General'
  }, {
    name: 'James',
    category: 'Restricted'
  }]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="sample">
  <div ng-controller="samplecontroller">
    <div class="row" ng-repeat="(key, value) in categories">
      <h5>{{ value }}</h5>
      <ul>
        <li ng-repeat="post in $parent.posts | filter: filterKey(key)">{{ post.name }} -- {{ post.category }}</li>
      </ul>
    </div>
  </div>

</body>
  • 0
    Для моего варианта использования (в связи с $firebaseArray ) я в итоге сделал return value; вместо return { name: value } Спасибо

Ещё вопросы

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