首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ngInit $index传递回脚本

将ngInit $index传递回脚本
EN

Stack Overflow用户
提问于 2014-03-17 04:36:53
回答 1查看 81关注 0票数 0

我目前正在开发一个涉及AngularJS和D3.js的可视化工具。我需要将ng-init的索引传递回脚本,以便唯一地设置多个图表的ids和类。

以下是我的代码示例。

代码语言:javascript
复制
<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带回脚本,这样我就可以唯一地设置id或class attr

代码语言:javascript
复制
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: '=' }
}
})

我已经唯一地设置了圆环图的圆弧,但是我不能唯一地设置圆环图本身。

有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-03-19 05:34:21

哇,真不敢相信答案是如此简单,我只需要添加一个新的作用域来将$index传递回脚本。

在发布这篇文章几分钟后就得到了答案。更新这篇文章给那些可能觉得这篇文章有用的人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22442649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档