【发布时间】:2014-03-29 11:55:34
【问题描述】:
我有一个名为 events 的 MySQL 表:
id| descr | time_from | time_to |
1 | wake up | 10:00:00 | 10:15:00 |
2 | play | 11:00:00 | 12:00:00 |
3 | walk | 14:00:00 | 14:30:00 |
我使用 ng-repeat 循环遍历此表,并尝试应用自己的过滤器,它应该按当前时间过滤事件。所以你可以猜到,使用这个过滤器应该只显示一个事件。您可以在下面看到我尝试过的操作。
这就是我选择事件并为 Angular 准备 json 的方式:
<?
mysql_connect("localhost","root","");
mysql_select_db('organaizer');
$sql = mysql_query('SELECT * FROM events');
while($lesson = mysql_fetch_array($sql))
{
$rows[] = $lesson;
}
print json_encode($rows);
?>
事件显示良好,没有错误。 角码:
function eventsCtrl($scope, $http)
{
$http({method: 'POST', url: 'events.php'}).success(function(data)
{
$scope.events = data; // response data
});
$scope.currentTime = function(lesson)
{
//Filter by current time
}
}
标记:
<div class='well' style='margin:10px;' ng-app ng-controller="eventsCtrl">
<div class="table-responsive">
<table class="table table-bordered">
<tr>
<th>#</th>
<th>Event</th>
<th>Start at</th>
<th>End at</th>
</tr>
<tr ng-repeat="event in events | filter:currentTime">
<td>{{event.id}}</td>
<td>{{event.descr}}</td>
<td>{{event.time_from}}</td>
<td>{{event.time_to}}</td>
</tr>
</table>
</div>
所以,我尝试使用时间格式 "HH:mm:ss" 在 angularjs.org 上使用 $interval 的示例应用过滤器,但不幸的是这没有帮助。
也许你有更好的想法如何做到这一点。
【问题讨论】:
-
有什么显示吗?有没有错误?
time_from和time_to的数据类型是什么(字符串、日期、...)?你确定你的currentTime函数被调用了吗? -
没有显示,没有错误。
time_from和time_to的数据类型是字符串。我完全确定,currentTime被调用了。
标签: javascript mysql angularjs