AngularJS:使用在controller / directive中其他地方定义的自定义javascript函数

时间:2015-05-26 13:38:32

标签: javascript angularjs d3.js angular-directive

所以,我有javascript文件(一种库,仍在使用它)'linechart.js',它包含一个对象,该对象又包含一个函数,该函数将一些数据作为输入并使用D3生成折线图。这是代码:

linechart.js

var lineobj = {
   plotFunc : function(data) {
        //generate line chart using the data argument
   }
} 

传递给上述对象的数据实际上是在angularjs控制器中生成的,如下所示:

index.controller.js:

app.controller('MainCtrl', ['$scope', function($scope) {
    $scope.generateData = function(){
        //generate data for the line chart
    }
}])

现在,我面临的问题是接近问题。

以下是我的疑问:

1。将数据传递到linechart.js的最佳方法是什么,以便生成线图。

2. 我应该使用指令并调用函数'plotFunc'来生成折线图吗?如果是这样,我该如何调用该函数?

3。我应该在控制器本身中调用该功能吗?如果是这样,又如何调用该函数?

4. 还有其他更好的方法,我没有提到过吗?

1 个答案:

答案 0 :(得分:1)

最好的办法实际上是生成一个包装D3的服务,要求在你的控制器中然后你可以调用这些方法。有一些很好的图表库已经包装了像nvd3一样的D3,否则请看一下这个链接,它解释了如何用Angular.js包装D3很好

http://www.ng-newsletter.com/posts/d3-on-angular.html