【问题标题】:AngularJS GET Request with ParameterAngularJS GET 带参数的请求
【发布时间】:2016-06-03 14:38:45
【问题描述】:

我正在开展一个项目,其中需要通过 AngularJS GET 函数在应用程序中请求来自 WordPress 站点的分析。我想从 JSON API 中过滤掉数据。有人可以帮我编写代码吗?

JSON:http://happyshappy.13llama.com/wp-json/llama/v1/stats

我需要将“标签”、“数据”显示为星期一、星期二、星期三、星期四...

这是我到目前为止所做的:

<html ng-app="countryApp">

<head>
<meta charset="utf-8">
<title>Angular.js JSON Fetching Example</title>
<link rel="stylesheet"   href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>

<script>

  var countryApp = angular.module('countryApp', []);

  countryApp.controller('CountryCtrl', function ($scope, $http){

    $http.get('http://happyshappy.13llama.com/wp-json/llama/v1/stats').success(function(data) {

      $scope.countries = data;

    });

  });

</script>

【问题讨论】:

  • 我需要将“标签”、“数据”显示为周一、周二、周三、周四...参考 ajax 数据是什么意思
  • 必须从 Ajax 数据中过滤掉内容
  • 但是您的回复中没有星期一、星期二、星期三、星期四,所以我们没有得到您真正想要的
  • 有7个数据集,每个数据集分别代表周一、周二、周三......所以,如果第一个数据集为0,那么周一为0。

标签: javascript angularjs json wordpress


【解决方案1】:

鉴于labels 数组中提供了日期,您可以使用类似这样的方式转换data 数组

$http.get(url).then(function(response) {
    var visitDates = response.data.visits.labels.map(function(dateString) {
        return new Date(dateString);
    });

    $scope.visits = response.data.visits.datasets;

    angular.forEach($scope.visits, function(dataSet) {
        dataSet.data = dataSet.data.map(function(count, i) {
            return {
                date: visitDates[i],
                count: count
            };
        });
    });
})

然后,每个data 条目都会有一个date,您可以通过Angular's date filter 传递。

<div ng-repeat="dataSet in visits">
    <h4>{{dataSet.label}}</h4>
    <ul>
        <li ng-repeat="datum in dataSet.data">{{datum.date | date: 'EEEE'}} is {{datum.count | number}}</li>
    </ul>
</div>

如果您不习惯在 Date 构造函数中使用诸如“May 28, 2016”之类的字符串,则始终可以使用诸如 moment.js 之类的内容来解析它们。

Plunker 演示~http://plnkr.co/edit/eXu6T8Zvr1fDjlGArFEY?p=preview

【讨论】:

  • 哦该死的!太感谢了!非常感谢您的帮助! :D
【解决方案2】:

我检查了整个 json 数据,里面没有工作日。请清楚你想要什么作为输出。从您给定的代码中,使用 data.data 获取从 $http.get 返回的实际 json 数据

var countryApp = angular.module('countryApp', []);

  countryApp.controller('CountryCtrl', function ($scope, $http){

    $http.get('http://happyshappy.13llama.com/wp-json/llama/v1/stats').success(function(data) {

      $scope.countries = data.data;

    });

  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 2015-02-27
    • 2014-09-02
    • 2014-02-15
    • 2023-04-07
    • 2019-04-10
    • 1970-01-01
    相关资源
    最近更新 更多