2013-06-20 24 views
15

Pracuję nad projektem, który łączy wszystkie wizualizacje d3.js z backbone.js w jednej aplikacji strony. Ponieważ mam wiele wizualizacji, takich jak wykres słupkowy, wykres kołowy i tak dalej, zastanawiałem się, jakie jest najlepsze podejście do tego problemu.Łączenie d3.js i backbone.js

Na przykład, powiedzmy, że mam dwa wykresy słupkowe i wykres kołowy. Czy powinienem umieścić wszystkie ustawione marginesy, skale, czy renderować wszystkie dane dla wszystkich wykresów w widoku? Ponieważ istnieją dwa różne typy wykresów, jaki powinien być model?

Co powinieneś zobaczyć, model, kontroler, kolekcja i tak dalej?

Dzięki z góry,

+0

To jest bardzo ogólnikowe. Musisz być bardziej konkretny, aby uzyskać dobrą odpowiedź. –

+0

Co powinno znaleźć się w widoku, modelu, kontrolera i kolekcji, nie powinno być niczym innym niż jakakolwiek inna aplikacja pojedynczej strony. Nie ma nic wspólnego z d3, wykresem słupkowym, wykresem kołowym i tak dalej. – ricksuggs

+0

http://stackoverflow.com/questions/17050921/d3-with-backbone-d3-with-angular/17058009#17058009 –

Odpowiedz

22

Przyjrzeliśmy się łącząc D3 i Backbone trochę i istnieje kilka rozwiązań istniejących tam:

Overview presentation

Short tutorial on combining Backbone & D3

Longer discussion on marrying Backbone and D3

A bunch of JS libraries for integrating with D3

Znalazłem też bibliotekę na GitHub, ale nie wydaje się to być obsługiwane ...

W końcu żaden z nich naprawdę zadowolony mnie więc opracowane własne modele kręgosłup, kolekcje & widoki. Założyłem:

ChartPoint Model - X & współrzędna Y i etykieta punkt

ChartSeries Collection - Kolekcja ChartPoints definiujących cały wykres

ChartBaseView - widok, który interpretuje dane powyżej, uchwyty zdarzeń , rysuje osie i inne funkcje ogólne

BarChartView, LineChartView, PieChartView, itp. - Określone widoki do renderowania typu wykresów, które chcesz. Większość twojego kodu D3 idzie tutaj.

Nie mówię, że jest to "właściwy" sposób na zrobienie tego ... po prostu moja droga.

+1

To brzmi jak doskonała abstrakcja na wysokim poziomie - czy mógłbyś opowiedzieć o implementacji modelu i pseudokodzie ilustrującym interakcje między nimi a innymi komponentami? – Barney

+2

Oto czego szukasz: http://bl.ocks.org/milroc/5522467 – c0mrade