如何从外部js文件调用angularjs函数-d3图表
我在Angularjs javascript文件中有以下代码,该文件为d3js雷达图供电 chart.js如何从外部js文件调用angularjs函数-d3图表,angularjs,d3.js,Angularjs,D3.js,我在Angularjs javascript文件中有以下代码,该文件为d3js雷达图供电 chart.js ui.d3.TsPlot = function(element) { this._element = element; this._plotRadius = 41; this._padding = 7; this._interpolation = 'linear-closed'; this._editable = false; this._tooltips = tr
ui.d3.TsPlot = function(element) {
this._element = element;
this._plotRadius = 41;
this._padding = 7;
this._interpolation = 'linear-closed';
this._editable = false;
this._tooltips = true;
this._animated = true;
this._freeDraw = false;
this._exps = [];
.........
};
ui.tsplot = function() {
function link(scope, element, attrs) {
var tsPlot = new ui.d3.TsPlot(element[0])
.setPlotRadius(parseInt(attrs.plotRadius, 10))
.setInnerRadius(parseInt(attrs.innerRadius, 10))
// Some other assignments for TsPlot
}
}
angular
.module('ui.tsplot', [])
.directive('tsPlot', ui.tsplot);
我想在模板中的javascript函数中调用tsplot()
home.html
<script type="text/javascript">
function retry()
{
alert('Before assignment');
var scope = angular.element(document.getElementById("tsPlot")).scope();
scope.ui.tsplot();
alert('After assignment');
}
函数重试()
{
警报(“分配前”);
var scope=angular.element(document.getElementById(“tsPlot”).scope();
scope.ui.tsplot();
警报(“分配后”);
}
但是,当我调用retry()函数时,第二个警报从未运行,当我检查控制台时,浏览器抛出一个错误,即“UncaughtTypeError:无法读取未定义的属性“ui”
下面是我在模板中使用的代码
<script>
var app = angular.module('tsPlotExampleApp', ['ui.tsplot']);
app.controller('tsPlotCtrl', function ($scope) {
$scope.dyndata={};
});
</script>
var app=angular.module('tsPlotExampleApp',['ui.tsplot']);
应用程序控制器('tsPlotCtrl',函数($scope){
$scope.dynda={};
});
我在retry()中缺少什么,在retry()中调用ui.tsplot()应该做什么
这样做的目的是加载d3函数,因为我已经动态创建了图表。不太清楚以下内容的含义:
我在Angularjs javascript文件中为我的d3图表编写了以下代码
。ui.tsplot
是在什么上下文中定义的?你能展示一下“周围环境”吗?嗨,塔塞卡特,我在问题中添加了一些细节。您现在可以检查一下吗?这真的是ui.tsplot
的代码吗?看起来不对。它需要返回链接函数。是。。它是巨大的,所以我没有包括。。它在这里--返回{restrict:'E',scope:{dsn:'=',compare:'=',play:'=',stack:'='},link:link};};ui.tsplot
函数是注册为tsplot
指令的整个工厂函数,这真的是您想要调用的函数吗?该函数仅返回指令定义对象。而且它在作用域上不能作为方法使用。