2012-10-29 3 views
1

데이터가 백본 컬렉션에있는 d3으로 barchart를 만듭니다. 사용자가 차트의 막대와 상호 작용하고 선택하고 데이터를 편집 할 수 있기를 원합니다.백본보기로 d3 데이터 항목

차트를 만드는 데 가장 좋은 방법은 차트를 만드는 것이 었습니다. 바에 대한 별도의보기. 내 차트보기에서

, 나는

 
create_bar: function(){ 

    var chart = d3.select("div#chart"); 

    timeline.selectAll("div") 
    .data(Myapp.chart.models) 
    .enter() 
    .append(function(d){console.log(d); 
         var bar = new Myapp.Views.ChartBar({model:d}); 
         return bar.el; 

     }); 

} 

을 가지고 있지만 append 함수 실패처럼 불행하게도, 그것은 보인다.

저는 약간의 데이터 포인트뿐만 아니라 bar div 내에 적당히 복잡한 html을 넣을 것입니다.

어떻게해야합니까?

답변

1

백본 이상한 믹스의 D3의 메이크업 종류와 전망, 그러나 여기가 작동하지 않을 수 있습니다 하나 개의 방법 :

timeline.selectAll("div") 
    .data(Myapp.chart.models) 
    .enter() 
    .append('div')// or 'span' or even Myapp.Views.ChartBar.prototype.el 
    .each(function(d, i) { 
    var bar = new Myapp.Views.ChartBar({model:d}); 
    bar.setElement(this);// Here "this" is the dom element 
    } 

편집 : 마지막 2 줄이 전화를 건너 뛰는, 하나 하나에 결합 될 수 setElement()을에 :

var bar = new Myapp.Views.ChartBar({model:d, el:this});