Angular nvD3错误:指令nvd3

时间:2015-05-15 23:33:00

标签: angularjs d3.js nvd3.js angular-nvd3

我试图一起使用 AngularJS,D3,NVD3 Angular-NVD3 。我按照此处的快速指南进行操作:http://krispo.github.io/angular-nvd3/#/quickstart以及此处的饼图示例:https://github.com/krispo/angular-nvd3/blob/gh-pages/js/pieChart.js但它不适合我!我在控制台中收到此错误:

错误

Error: Invalid isolate scope definition for directive nvd3: =?
    at Error (native)
    at http://localhost:3000/assets/libs/angular/angular.min.js:43:202

我一直绞尽脑汁想弄清楚我在这里做错了什么......这是我的代码:

HTML / Jade:

div(ng-app='myApp')
    div(ng-controller='d3Dashboard')
        nvd3(options='options', data='data')

模块

angular.module('myApp', [
  'myApp.commonController', 
  'myApp.filters',
  'myApp.services',
  'myApp.directives',
  'nvd3'
]);

控制器

angular.module('myApp.commonController', []).
  controller('d3Dashboard', function ($scope) {
        $scope.options = {
            chart: {
                type: 'pieChart',
                height: 500,
                x: function(d){return d.key;},
                y: function(d){return d.y;},
                showLabels: true,
                transitionDuration: 500,
                labelThreshold: 0.01,
                legend: {
                    margin: {
                        top: 5,
                        right: 35,
                        bottom: 5,
                        left: 0
                    }
                }
            }
        };

        $scope.data = [
            {
                key: "One",
                y: 5
            },
            {
                key: "Two",
                y: 2
            },
            {
                key: "Three",
                y: 9
            },
            {
                key: "Four",
                y: 7
            },
            {
                key: "Five",
                y: 4
            },
            {
                key: "Six",
                y: 3
            },
            {
                key: "Seven",
                y: .5
            }
        ];

    });

看到我做错了什么?

我应该使用angularjs-nvd3-directives代替angular-nvd3吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

angular-nvd3库似乎使用=?语法将其一些作用域属性设置为可选。这是在Angular 1.1.4(commit #ac899d0)中添加的,似乎是一个破坏(非向后兼容)的变化。

因此,为了使用angular-nvd3的最新版本,您需要更新版本的Angular。