angular.js - 如何将d3(js库)与angular同使用?
黄舟
黄舟 2017-05-15 17:01:40
0
2
579

我想用angular封装一个指令,将d3.js画图的功能写进去。
首先我仿照网上的例子,将d3.js用factory包了起来,js文件命名为d3.js

然后我在 directive.js文件中把d3.js绘制柱状图封装:

之后在页面中引用了指令

最后再app.js中注入了依赖如图:

现在有些报错如下:

请教如何解决这个问题呢。哪里出了问题?angular新手,请大家在各方面指教。。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(2)
大家讲道理

Melihat struktur organisasi kod anda, nampaknya pengurusan modul tidak digunakan, jadi perkenalkan d3 dahulu dan gunakannya secara langsung. Tidak perlu menutup d3 dalam satu lapisan, dan ia tidak akan memudahkan untuk naik taraf pada masa hadapan

<script src="lib/d3.js"></script>
<script src="lib/angular.js"></script>

Gunakan terus

angular.module('myApp.directive', [])
        .constant('d3',d3)
        .directive('d3Bars', function (d3) {
            return {}
        });

angular.module('myApp', ['myApp.directive'])
        .controller(function () {

        });

Jika boleh, anda disyorkan agar memisahkan logik lukisan daripada perniagaan anda dan mengekstrak modul lain, seperti

angular.module('ngD3', [])
        .constant('d3',d3)
        .directive('d3Bars', function (d3) {
            return {}
        });

Mungkin anda akan menyumbang galeri foto yang hebat pada masa hadapan

黄舟

Jika anda ingin menggunakan roda sedia ada, saya syorkan anda melihat sudut-nvd3. Terdapat juga contoh
Jika anda ingin mencubanya sendiri, saya syorkan anda lihat Mencipta Arahan Carta Menggunakan AngularJS dan D3.js (anda mungkin perlu memintas dinding...)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan