javascript - 两个 D3.js 图与 AngularJS 在同一页面中

标签 javascript angularjs d3.js svg angularjs-directive

我想同时添加两个图表 D3.js。每个图表都完美且独立地工作,但是当我将两个图表放在同一页面上时,它不起作用。我不知道是否与 Controller 或指令有冲突,或者冲突是否在 div svg 中。您可以单独测试图形,取消注释第 11 和 20 行,并在 Plunker 上注释第 15 到 17 和 21 行。 我知道问题是两个模块删除它们但如何解决?这是代码:

<html>

  <head>
    <link rel="stylesheet" href="style.css">
  </head>

  <body ng-app="d3DemoApp">

<!-- <div id="graph1" ng-controller="controllerBubble">
  <bubble-chart chart-data="chartData"></bubble-chart>
</div> -->

<div id="graph2" ng-controller="controllerDependance">
    <dependance-chart dependance-data="dependanceData"></dependance-chart>
</div>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
    <script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
 <!-- <script src="script1.js"></script> -->
<script src="script2.js"></script>
  </body>

</html>

图 1:

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

d3DemoApp.controller('controllerBubble', function AppCtrl ($scope,$http) {
 //...
}

图 2:

var d3DemoApp = angular.module('d3DemoApp', []);
d3DemoApp.controller('controllerDependance', function AppCtrl ($scope,$http) {
//...
}

这是 Plunker:https://plnkr.co/edit/ekuhHkjLpqXX6XKG8mwU?p=preview 希望你能帮助我。谢谢。

最佳答案

您的 JS 代码的问题在于您定义了两次 Angular 模块。你应该在你的应用程序中只有一次这一行,其中第二个参数是你的模块的任何依赖项的数组:

angular.module('d3DemoApp', []);

任何你想调用模块的地方,使用angular.module('d3DemoApp')(没有第二个依赖参数)

像这样:

var d3DemoApp = angular.module('d3DemoApp', []); // Define the module

d3DemoApp.controller('controllerBubble', function AppCtrl ($scope,$http) {
  //...
}

第二个 Controller :

var d3DemoApp = angular.module('d3DemoApp'); //Define a var with the module as it's value

d3DemoApp.controller('controllerDependance', function AppCtrl ($scope,$http) {
  //...
}

您可以在这里了解更多信息:https://docs.angularjs.org/guide/module

我已经用这里的修复程序 fork 了你的 plnkr:https://plnkr.co/edit/o58pEyA93ydRIGHysWUI?p=preview

关于javascript - 两个 D3.js 图与 AngularJS 在同一页面中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37165309/

相关文章:

javascript - 在旧图表上方添加新的 D3 图表

javascript - React 的状态如何通过使用扩展运算符来保存文件?

javascript - 固定 div 中的滚动能力

c# - 如何让memberID从一个页面转移到另一个页面,javascript

javascript - AngularJS ng-options 在选择选项后删除了默认空白值

javascript - 删除 Angular View 属性中的空间

javascript - 绑定(bind) AngularJS 值来调用现有的 JavaScript 函数

javascript - 根据整数值查找颜色 - 快速算法

javascript - 限制jstree中子节点的选择数量

javascript - d3 似乎在 .data() 方法中静默 chop 数组