У меня есть это:
<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 }}
Это требование перебора 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>
$firebaseArray
) я в итоге сделал return value;
вместо return { name: value }
Спасибо
key
в первом ng-repeat в качестве фильтра для второго ng-repeat. Ссылка, которую вы дали, как это сделать(key, value) in dataset