Javascript 将ngInit$索引传递回脚本
我目前正在开发一个可视化工具,包括AngularJS和D3.js。 我需要将ng init的索引传递回脚本,以唯一地设置多个图表的ID和类 这是我的代码示例Javascript 将ngInit$索引传递回脚本,javascript,angularjs,d3.js,visualization,Javascript,Angularjs,D3.js,Visualization,我目前正在开发一个可视化工具,包括AngularJS和D3.js。 我需要将ng init的索引传递回脚本,以唯一地设置多个图表的ID和类 这是我的代码示例 <body ng-app = "chartApp" ng-init="charts = [[4,2,3,4,42,32], [123,52,14,22,12], [53,72,76,13,13], [143,652,76,112]]"> <donut-chart data="chart" ng-repeat="chart
<body ng-app = "chartApp" ng-init="charts = [[4,2,3,4,42,32], [123,52,14,22,12], [53,72,76,13,13], [143,652,76,112]]">
<donut-chart data="chart" ng-repeat="chart in charts"> {{ $index + 1 }} </donut-chart>
我已经唯一地设置了甜甜圈图表的弧,但是我不能唯一地设置甜甜圈图表本身
有办法吗?哇,真不敢相信答案很简单, 我只需要添加一个新的作用域,将
$index
传递回脚本
在发布这篇文章几分钟后得到了答案。
为任何可能会觉得这有用的人更新这篇文章
var chartApp = angular.module('chartApp', [])
chartApp.directive('donutChart', function(){
function link(scope, el){
var data = scope.data
var color = d3.scale.category20()
var el = el[0]
var width = el.clientWidth
var height = el.clientHeight
var min = Math.min(width, height)
var pie = d3.layout.pie().sort(null)
var arc = d3.svg.arc()
.outerRadius(min / 2 * 0.9)
.innerRadius(min / 2 * 0.5)
var svg = d3.select(el).append('svg')
.attr({width: width, height: height})
.append('g')
.attr('transform', 'translate(' + width / 2 + ',' + height / 2 + ')')
svg.selectAll('path')
.data(pie(data))
.enter().append('path')
.attr("id", function(d, i) { return "arc" + (i+1); })
.style('stroke', 'white')
.attr('d', arc)
.attr('fill', function(d, i){ return color(i) })
}
return {
link: link,
restrict: 'E',
scope: { data: '=' }
}
})