У меня возникли трудности с использованием настраиваемого фильтра. Я искал и искал, но не могу найти ничего подходящего, но это должно быть быстрым решением для кого-то с небольшим опытом.Параметры фильтра углового JS
Я использую ng-repeat для заполнения списка, это из vm.posts.
Пользователь, который вошел в систему и просматривал сообщения, является vm.user и имеет переменную vm.user.postsWatched, которая представляет собой массив идентификаторов сообщений.
Я создал настраиваемый фильтр, чтобы проверить, имеет ли сообщение «наблюдаемый» и если он его отображает.
В моем фильтре я печать содержимое обеих переменных и находя, что я не совсем то, чего я пытаюсь отправить в
Index.html:.
<ul class="media-list">
{{vm.user.postsWatched}}
<li ng-repeat="post in vm.posts | watchedFilter:vm.posts:vm.user.postsWatched | limitTo:3" class="media">
<div class="media-body">
<h4 class="media-heading">{{post.title}}</h4>
<p>{{post.date | date: 'short'}} | {{post.content}}</p>
</div>
</li>
</ul>
На второй линии, отображается правильный массив идентификаторов сообщений, поэтому я знаю, что там нет проблем.
vm.posts и vm.user.postWatched передаются в watchfileFilter как параметры, есть ли проблема до сих пор?
watchedPost.filter.js:
(function() {
'use strict';
angular
.module('app')
.filter('watchedFilter', function() {
return function(inputs,ids) {
console.log("ids:" + JSON.stringify(ids[0]) + JSON.stringify(ids[1]) + JSON.stringify(ids[2]));
console.log("Input:" + JSON.stringify(inputs[0]) + JSON.stringify(inputs[1]) + JSON.stringify(inputs[2]));
...
};
});})();
Прежде, чем я даже начать фильтрацию, содержимое параметра функции «ид» не равен vm.user.postsWatched, а содержит ту же информацию, как «входы ». Поэтому я могу сказать, что он получает параметр в порядке, но, похоже, не оба, если кто-то может прояснить, это действительно поможет мне.
Если больше нужно просто спросить, большое спасибо: D
ОК, это блестяще, я попробую прямо сейчас, большое спасибо: D – carrera
Спасибо @georgeawg - это прекрасно, было довольно глупо предположить, что мне нужно было пройти фильтр объектов, которые я уже итерировал, большое спасибо за ваш быстрый ответ – carrera