【发布时间】:2014-02-08 07:20:52
【问题描述】:
我一直在尝试将 D3.js 与 Angular 集成,并且正在关注本教程: http://www.ng-newsletter.com/posts/d3-on-angular.html
本教程创建了一个包含d3Service 的 d3 模块,并将其注入到指令中。我的应用程序的结构略有不同,但每当我尝试注入 d3 服务时,它在我的指令 link 函数中显示为 undefined。我可以毫无问题地将 d3 服务注入我的控制器。这就是我正在做的事情:
app.js:
var sentimentApp = angular.module('sentimentApp', [
'ngRoute',
'ngSanitize',
'sentimentAppServices',
'sentimentAppDirectives',
'sentimentAppControllers'
]);
在services.js内,我有几个服务,其中一个是d3:
var sentimentAppServices = angular.module('sentimentAppServices', ['ngResource'])
// other services
.factory('d3', [function(){
var d3;
d3 = // d3 library code here
return d3;
}]);
现在在directives.js:
var sentimentAppDirectives = angular.module('sentimentAppDirectives', ['sentimentAppServices']);
sentimentAppDirectives.directive('lsPieChart', ['d3', function($compile, d3){
return {
// scope & template
link: function($scope, elem, attr, ctrl) {
console.log(d3); // undefined
}
}
有什么建议吗?谢谢。
【问题讨论】:
标签: javascript angularjs dependency-injection d3.js