【问题标题】:Angular: Dynamically change JSON requestAngular:动态更改 JSON 请求
【发布时间】:2014-06-21 23:28:48
【问题描述】:

我正在使用 Angular 和 d3 创建仪表板应用程序。一些重要的结构部分是:

  1. 时间框架控制器
  2. 通过特定控制器使用的 d3 指令(例如 d3-choropleth)。
  3. 一个 JSON $http 服务,用于抓取数据并将其推送到各个控制器。

到目前为止,这就是我的结构。我的问题是:我应该如何在我的应用程序的其余部分实现时间框架功能?时间框架控制器/表单的价值被困在它自己的范围内。我应该将时间帧数据传输到全局变量,然后以某种方式将变量绑定到 JSON 请求服务吗?

这是我的服务:

// Service for making JSON requests
myApp.factory('requestService', function($http) {
   return {
        getDownloadsLineData: function() {
             // Return the promise
             return $http({
                        url: base_url + downloads, 
                        method: "GET",
                        // These parameters are dynamically changed by 
                        // a global timeframe control
                        params: { start: '2013-01-01',
                                end: '2013-02-01',
                                interval: 'month',
                                country: 'US',
                                location_bin: 'countries'}
                     })
                    .then(function(result) {
                        // Resolve the promise as the data
                        return result.data;
                    });
        }
   }
});

时间范围控制器:

myApp.controller('TimeframeCtrl', ['$scope',
                                   '$cookieStore',
                                   function ($scope, $cookieStore) {
                                   ...

一个 d3 控制器的示例:

myApp.controller('DownloadsLineCtrl', ['$scope', 
                                       'requestService', 
                                       function($scope, requestService){
  $scope.title = 'Downloads over Time';
  $scope.tooltip = 'Test tooltip';
  requestService.getDownloadsLineData().then(function(data) {
        $scope.d3Data = data;
    });
}]);

【问题讨论】:

    标签: javascript json angularjs d3.js


    【解决方案1】:

    听起来你需要TimeframeService

    TimeframeController 将负责在视图中显示时间框架参数并让 usrr 调整它(我假设)。然后它将它们保存回TimeframeService

    requestService 也将依赖于TimeframeService 并检索用于配置请求的参数。

    顺便说一句,如果您使用 $cookies 来存储参数,那么 TimeframeService 应该小心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2016-12-24
      • 2021-07-19
      • 1970-01-01
      • 2018-09-01
      • 2018-11-16
      • 2019-10-27
      相关资源
      最近更新 更多