javascript - 我如何将旭日图转换为与 angularjs 一起使用的指令?

标签 javascript angularjs d3.js sunburst-diagram

我创建了一个sunburst graph使用普通的 JavaScript。

现在我需要从服务获取数据并在 AngularJS 中生成图表。我怎样才能从中制定指令?任何示例或指导都会很棒。

我制作了一个 Controller 来从服务获取数据。代码在这里:

 $scope.buildchart = function(widget) {
        var w2 = new Worker("scripts/webworkers/bigQueryWorker.js");           
        w2.postMessage($scope.selectedClass + "," 
          + $rootScope.hierarchystring.toString() 
          + "," + "Hierarchy" + "," + Digin_Engine_API);

        w2.addEventListener('message', function(event) {
            hierarchyRetrieved(event);
        });

        function hierarchyRetrieved(event) {
            var obj = JSON.parse(event.data);
            console.log("Hierarchy data is");
            console.log(JSON.stringify(obj));

        };
    };

有什么方法可以在这个函数中获取这些数据吗?

最佳答案

首先您制定如下指令:

<svg sunburst-chart></svg>

第二

为ajax创建一个模拟函数,如下所示:

 function mockAnAjaxCall() {
    window.setTimeout(function() {
      $scope.data1 = {
        "name": "Root",
        "children": [{ ...
        }]
      };
        $scope.$apply();//apply the scope as data is changed.
    }, 3000); //ajax call gets over in 3 secs

第三

创建一个链接函数来观察data1变量上的数据变化。

link: function(scope, elem, attrs) {
  //this will watch the scope data
  scope.$watch(
    "data1",//variable you are watching
    function handleChange(root, oldValue) {
                console.log(scope.data1)
      if (!root) {
        return;
      }
      //make the sun burst chart.

工作示例 here

希望这有帮助!

关于javascript - 我如何将旭日图转换为与 angularjs 一起使用的指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34847789/

相关文章:

javascript - karma e2e 测试框架,它可以对任何鼠标事件使用react吗?

javascript - 将文本元素添加到路径元素的中心

javascript - 如何使用键盘监听器在调用时触发工具提示?

javascript - 当用户点击时更改 Google map 标记图标

javascript - 在 Smooch 中从 Web Messenger 发送消息

javascript - 使用 Angular.js 预加载图像的最佳方法

javascript - 如果我不知道变量的类型(可能是数组、对象或基元),如何从变量中清除以前的数据

javascript - 将图表放置在左上角

javascript - 当我点击按钮 javascript 和 php 时分页不起作用

javascript - 这个 JS 模式的目的是什么?