我正在查看Angular文档,我无法更好地记录内容。
我的问题如下:
我有一个过滤器:
.filter('filteringService', function () {
return function (photos, categsList) {
if (photos !== undefined) {
var filteredPosts = [];
console.log('Categories or Selected Categories:');
console.log(categsList);
//DEVEL Only, assign a SEARCH value, can't pass the data from the list now.
categsList = 'people';
if (categsList === undefined) {
for(i=0; i < photos.length; i++) {
filteredPosts.push(photos[i]);
}
} else {
console.log('Trying to push a category slug to search for.');
//TASK: Convert in multiple possible selections.
filteredPosts = [];
}
console.log('Filter returns ' + filteredPosts.length + ' posts');
return filteredPosts;
}
};
});
我有模板
<div class="photos">
<div class="filters">
<ul>
<li><a>ALL</a></li>
<li ng-repeat="category in categsList">
<a ng-checked="category[0]" ng-model="category[0]">{{ category[1] }}</a>
</li>
</ul>
</div>
<ul class="photos-list">
<li ng-repeat="photo in photos|filteringService:category">
<h1>{{ photo.title }} click <a href="#/photos/{{ photo.slug }}"> LINK</a></h1>
<ul class="categories">
<li ng-repeat="category in photo.categories">
{{ category.title }}
</li>
</ul>
</li>
</ul>
</div>
有一个名为photos
的帖子有一个巨大的对象,然后有一个名为categsList
的类别列表。
照片对象包含来自categs列表的项目。我希望能够通过该列表过滤CLICKED元素,也许还有多个过滤器,但首先要将实际的过滤器值传递给过滤器服务,我似乎无法做到这一点。
我该怎么做?
答案 0 :(得分:0)
显然我设法以肮脏的方式传递过滤器值(I GUESS),就像这样
<a ng-bind="category.slug" ng-click="returnFilter(category.slug);" ng-model="category.slug">{{ category.title }}</a>
它在这里
$scope.returnFilter = function(theSlug) {
$scope.filterBy = theSlug;
};
它出现在这里
<li ng-repeat="photo in photos|filteringService:filterBy">
它有效,但这是正确的吗?
编辑2:
假设结果数组不到15项,我可以在控制器中运行一些动作吗?
实际上反过来,我可以从控制器查询过滤器输出的结果数组吗?
我无法$观看第一个数组,我想过滤器会创建一个新数组并将这些结果放入页面中。 如何查看生成的数组以进行更改并在控制器中执行操作?