AngularJS 过滤日
AngularJS filter day
我正在使用 AngularJS 构建每日励志名言应用程序。当前日期(或该月的第几天,即:1 月 1 日)应提取报价 ID 1。
我在添加日期过滤器方面得到了一些帮助,因此脚本根据当天从数据库中提取报价,但日期过滤器没有提取正确的报价 ID。
在 app.js 我有:
var app = angular.module('app',[]);
app.controller('TimeCtrl', function($scope, $filter, $http, $timeout) {
$http.post('ajax/getQuotes.php').success(function(data){
$scope.quote = data;
console.log($scope.quote);
});
$scope.dayNumber = $filter('date')(new Date(), 'd');
console.log( $scope.dayNumber );
});
在我的视图中:
<html>
<head>
<meta charset="UTF-8" />
<title>require moment</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body ng-app="app">
<div ng-controller="TimeCtrl">
<p>
{{dayNumber}} <br />
{{"id is: " +quote[dayNumber].id + ": " +quote[dayNumber].quote}}<br />
---==--------==------<br />
{{quote}}<br />
</p>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.7/angular.js"></script>
<script src="app/app.js"></script>
</body>
</html>
在 getQuotes.php 我有:
<?php
include('../includes/config.php');
$query="select id,quote from quotes order by id desc";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$arr = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arr[] = $row;
}
}
//start arr at key 1 instead of starting at 0
$arr = array_combine(range(1, count($arr)), array_values($arr));
//sort obj to be in order
sort($arr);
# JSON-encode the response
$json_response = json_encode($arr);
// # Return the response
echo $json_response;
?>
目前,我将我的电脑日期设置为2015年1月1日,所以在下面截图的第一行,1
是1月1日。在此之下,过滤器正在提取引用 id 2 而不是提取引用 id 1
渲染输出为:
*** 更新 1 ****
在注释掉从 1 开始的数组键和注释掉 getQuotes.php 中的 sort() 函数之后,我现在注意到,无论排序是什么样的,脚本总是采用最后 key/value 来自 db.
//start arr at key 1 instead of starting at 0
//$arr = array_combine(range(1, count($arr)), array_values($arr));
//sort obj to be in order
//sort($arr);
因为数组索引从0开始,quote[1]将是第二个元素。
我正在使用 AngularJS 构建每日励志名言应用程序。当前日期(或该月的第几天,即:1 月 1 日)应提取报价 ID 1。 我在添加日期过滤器方面得到了一些帮助,因此脚本根据当天从数据库中提取报价,但日期过滤器没有提取正确的报价 ID。
在 app.js 我有:
var app = angular.module('app',[]);
app.controller('TimeCtrl', function($scope, $filter, $http, $timeout) {
$http.post('ajax/getQuotes.php').success(function(data){
$scope.quote = data;
console.log($scope.quote);
});
$scope.dayNumber = $filter('date')(new Date(), 'd');
console.log( $scope.dayNumber );
});
在我的视图中:
<html>
<head>
<meta charset="UTF-8" />
<title>require moment</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body ng-app="app">
<div ng-controller="TimeCtrl">
<p>
{{dayNumber}} <br />
{{"id is: " +quote[dayNumber].id + ": " +quote[dayNumber].quote}}<br />
---==--------==------<br />
{{quote}}<br />
</p>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.7/angular.js"></script>
<script src="app/app.js"></script>
</body>
</html>
在 getQuotes.php 我有:
<?php
include('../includes/config.php');
$query="select id,quote from quotes order by id desc";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
$arr = array();
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arr[] = $row;
}
}
//start arr at key 1 instead of starting at 0
$arr = array_combine(range(1, count($arr)), array_values($arr));
//sort obj to be in order
sort($arr);
# JSON-encode the response
$json_response = json_encode($arr);
// # Return the response
echo $json_response;
?>
目前,我将我的电脑日期设置为2015年1月1日,所以在下面截图的第一行,1
是1月1日。在此之下,过滤器正在提取引用 id 2 而不是提取引用 id 1
渲染输出为:
*** 更新 1 ****
在注释掉从 1 开始的数组键和注释掉 getQuotes.php 中的 sort() 函数之后,我现在注意到,无论排序是什么样的,脚本总是采用最后 key/value 来自 db.
//start arr at key 1 instead of starting at 0
//$arr = array_combine(range(1, count($arr)), array_values($arr));
//sort obj to be in order
//sort($arr);
因为数组索引从0开始,quote[1]将是第二个元素。