2014-10-19 73 views
2

我有一个ng-repeat滤镜,如下图所示。出于某种原因,它没有在Web服务器中工作,我认为它是因为浏览器DOM中不允许有重复的项目,所以我不得不放置“通过item.id跟踪”。请参阅下面的代码。ng-repeat跟踪的多个滤镜

<div ng-repeat="item in items | filter:search:date | filter:filterFrontPage track by item.id"> 

与上述代码的唯一问题是,项不是由具有“filterFrontPage”过滤器以及过滤器,其从一个项目一个布尔值加载。整个事情正常工作时,我把它改成如下:

<div ng-repeat="item in items | filter:search:date track by item.id"> 

因此,使用上面,我如何添加一个过滤器来过滤变量的布尔值。我似乎无法通过使用“过滤器:搜索:日期:{isActive:true}”得到这个工作。请让我知道可以做些什么来实现这一目标。

更新1:

,我早就用它我已删除了 “日期”。 “搜索”是为了以下,并且工作正常。

<input class="form-control" type="text" placeholder="Search posts" ng-model="search.$" /> 

理想情况下,filterFrontPage被写入以通过isActive变量过滤项目true/false;

+0

你有任何机会一个plunkr? – PSL 2014-10-19 17:28:35

+0

它是我现在拥有的一个大项目,我并没有使用plunkr。你能够确定为什么那种过滤器不能工作吗? – 2014-10-19 17:38:08

+0

这些过滤器都没有看起来正确。我怀疑'date'是'string','Object'或'function'的一个比较器或'filterFrontPage'。 – zeroflagL 2014-10-19 17:44:12

回答

0

我认为你需要周围使用过滤收集括号,即:

<div ng-repeat="item in (items | filter:search:date) track by item.id"> 
+0

非常感谢。但为什么当我通过$ index添加“item(item | filter:search:{isFrontPage:true})track”时,这个方法不会被调用。 app.filter( 'filterFrontPage',函数(){ 回报函数(项目){ 的console.log( '你好'); } }); – 2014-10-20 09:05:38

+0

如果你能为此提供一个小提琴/ plunk,你可以得到更多的帮助。 – 2014-10-20 10:54:03

+0

好的使用你的代码,我将如何过滤一个项目中的布尔值? – 2014-10-20 16:39:30