我尝试将d3用于一个angular项目,如ng-newsletter上的一个主要示例所述。该示例展示了如何在angular中设置D3服务。
我想知道将D3作为Angular服务包含在Angular yeoman和bower中是否有效?还是像我怀疑的那样存在冲突?
看起来我需要将服务注入到指令中才能使用D3服务。否则,当尝试通过脚本标签将d3库包含到全局空间中时,我的Angular指令无法引用D3对象。
我担心将D3作为Angular服务使用会降低使用yeoman/grunt/bower中的一些最佳实践所获得的代码性能。例如,压缩的代码,使用bower更新到将来版本的D3。
将D3注入服务中并不是必须的,它展示了我们如何使用依赖注入来实现结果。如果你在angular项目中使用jQuery,你可以选择走同样的路线或者将它添加到index.html中包含的脚本列表中。无论哪种方式,都可以实现相同的结果——jQuery或$变成全局变量,就像D3一样。