2014-04-01 144 views
1

我想过滤从rss检索到的新闻,以仅显示在时间间隔/日期中发布的新闻。AngularJs过滤器inverval日期

在我的HTML视图我alredy已经拿到了项目现场

publishedDate":"Mon, 31 Mar 2014 12:57:58 -0700" 

和间隔时间,例如24小时或以秒为单位或任何在$ scope.timeinterval。

<li ng-repeat="feed in feeds | filter:XXXXX"> 

那么,我怎么能比较两个区间?显示我在控制器中执行它?如果是的话,返回什么视图?

回答

0

您的过滤器逻辑对您的要求太具体。最好的方法是拥有一个采用表达式形式的自定义过滤器 - 在这种情况下是一种功能。

因此,自定义过滤器函数将单个记录作为参数。该功能应返回truefalse,具体取决于传递的记录是否应显示在视图中。

因此,这将是这样的:

$scope.customFilter = function (singleRecord) { 
    //singleRecord is one record of the repeat directive 
    //Here, you add your custom filter logic. 

    //Return true if the record should be shown else false 
}; 

那么你的观点会使用此记录为:

<li ng-repeat="feed in feeds | filter:customFilter()"></li> 
+0

谢谢! customFilter应该去哪里?它看起来像控制器内,但我认为有一个filter.js文件。 – Pedro4441

+0

它进入控制器视图。但是,如果你想有一个单独的专用filter.js文件,那么你需要使用'app.filter'函数来创建一个 - 参见[this](http://docs.angularjs.org/tutorial/step_09)步骤在AngularJS教程 – callmekatootie

+0

完美。我发现一个问题,我必须将feed.publishedDate传递给控制器​​,但是filter:customFilter(feed,feed.publishedDate)不起作用,我应该怎么做? – Pedro4441