AngularJS:使用 controller/directive 中别处定义的自定义 javascript 函数
AngularJS: Using a custom javascript function defined elsewhere in controller/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.还有没有其他更好的方法我没有提到?
最好的方法实际上是生成一个包装 D3 的服务,在您的控制器中需要它,然后您可以调用这些方法。有一些很好的图表库已经像 nvd3 一样包装了 D3,否则看看这个 link 它很好地解释了如何用 Angular.js
包装 D3
所以,我有 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.还有没有其他更好的方法我没有提到?
最好的方法实际上是生成一个包装 D3 的服务,在您的控制器中需要它,然后您可以调用这些方法。有一些很好的图表库已经像 nvd3 一样包装了 D3,否则看看这个 link 它很好地解释了如何用 Angular.js
包装 D3