我已经尝试了两天使用Rails和angular制作输入日期过滤器,但最后我放弃了。输入给我的日期格式与我需要的格式不同,我无法更改。
我想我可以用另一种最简单的方式来做“过滤器”。我意识到使用ruby我可以很容易地获得我需要的格式的日期,所以我试图显示和隐藏比较ruby日期和元素日期的元素。
所以我正在尝试这个:
<section ng-repeat="event in events | orderBy:'date' | filter:myFilter"
ng-show="(<%= Date.today.to_s %> <= {{event.date}})">
但表达式ng-show="(<%= Date.today.to_s %>) <= ({{event.date}})"
未评估或始终为true,因为它显示所有事件,包括日期之前的事件。
我也尝试了"(<%= Date.today.to_s %> <= event.date)"
,但这一个总是假的,所以所有的元素都被隐藏了......
有人可以帮助我吗?
编辑:myFilter的设置类似于仅显示今天的事件,并且正在运行。
<a id="filter-by-date" class="btn btn-success wide-btn" href="#"
ng-click="myFilter = '<%= Date.today.to_s %>'">Today Events</a>
答案 0 :(得分:3)
在控制器内移动数学
HTML
<section ng-repeat="event in events | orderBy:'date' | filter:myFilter"
ng-show="computeShow(event.date)">
JS
$scope.computeShow = function (eventDate) {
return (
//compute eventDate >= today's date
)
};