我是 MEAN (所有网络技术)和 D3 的新手。我正在尝试将 D3,dc.js 包含到我的应用程序中。
我在 config / all.js 中添加了所有js文件,nvd3包含了角度模块,并在 public / config.js 中添加了该文件。我的问题是如何在控制器内部使用D3?
在this link的帮助下,我能够将D3包括如下
//Load D3 into the application
var scriptTag = $document[0].createElement('script');
scriptTag.src = 'http://d3js.org/d3.v3.min.js';
scriptTag.type = 'text/javascript';
scriptTag.onreadystatechange = function () {
if (this.readyState === 'complete') onScriptLoad();
}
scriptTag.onload = onScriptLoad;
var s = $document[0].getElementsByTagName('body')[0];
s.appendChild(scriptTag);
由于nvd3引用了' d3',我为nvd3做了同样的事情但是angular-nvd3指令却在抱怨' nv'在nvd3.js文件中定义。
任何人都可以让我知道 1.如何包含第三方库 2.有没有办法推迟依赖(在我的情况下为angular-nvd3),直到加载依赖(' nvd3.js') 谢谢
答案 0 :(得分:0)
不要在控制器中包含任何d3调用,而是可以在指令中引用它并在app.all配置文件中包含d3的引用。
或者使用服务加载库并返回一个单例并在指令中使用它,看看这个post非常有用,它描述了如何使用d3和angular。
你可以采取任何一种方式,但要小心,不要混淆方法。