2017-12-20 4 views
0

JS 렌더링을 사용하여 d3 그래프를 삽입하려하지만 작동하지 않습니다. 그래프를 테스트 할 때 별도로 실행했기 때문에 그래프에 문제가 없습니다. 다음JSRender에서 d3.js를 사용하는 방법은 무엇입니까?

<script id="renderTemplate" type="text/x-jsrender"> 
    <p>{{:name}}</p> 
    <p>{{:dept}}</p> 
    //Chart goes here 
    <div class="chart" data-link="{graph}"></div> 
</script> 

내가 도움의 모든 종류는 크게 감상 할 수

<script> 
function initChart(element,data){ 
var xAxis = d3.svg.axis(); 
var axisScale = d3.scale.linear() 
       .domain([0,50]) 
          .range([0,100]); 

var xAxis = d3.svg.axis() 
         .scale(axisScale); 

typeof(xAxis); 
var svgContainer = d3.select(element).append("svg") 
            .attr("width", 700) 
            .attr("height", 100); 

var axisScale = d3.scale.linear() 
          .domain([0, 50]) 
          .range([0, 400]); 
var xAxis = d3.svg.axis() 
         .scale(axisScale) 
         .tickValues(d3.range(axisScale.domain()[0], axisScale.domain()[1] + 10, 10)); 

var xAxisGroup = svgContainer.append("g") 
            .attr("transform", "translate(20,50)") 
            .call(xAxis); 
} 
$.views.tags("graph", { 
init: function(tagCtx, linkCtx) { 
this.data = tagCtx.args[0]; 
this.svg = initChart(linkCtx.elem, this.data); 
} 
}); 
var tmpl = $.templates("#renderTemplate"); 
</script> 

위의 템플릿에 삽입 할 내가 D3를 사용하여 제작하고있는 X 축입니다. 감사.

+0

renderjs/jsviews에서 requirejs를 사용하고 있습니까? d3.js를 포함 하시겠습니까? 콘솔에 표시되는 오류는 무엇입니까? –

+0

@AnupYadav 콘솔에 오류가 표시되지 않습니다. 그래프가 표시되지 않습니다. –

+0

@borismoore에 대한 js 바이올린을 만들지 않는 이유는 바이올린 후에도 잘 대답하기 때문입니다. –

답변

0
<script id="renderTemplate" type="text/x-jsrender"> 

    //Chart goes here 
    <div class="chart" data-link="{graph}"></div> 
</script> 
<div id="container"></div> 

=========================================== ======

function initChart(element,data){ 
console.log("element"); 
console.log("data"); 

var xAxis = d3.svg.axis(); 
var axisScale = d3.scale.linear() 
       .domain([0,50]) 
          .range([0,100]); 

var xAxis = d3.svg.axis() 
         .scale(axisScale); 

typeof(xAxis); 
var svgContainer = d3.select(element).append("svg") 
            .attr("width", 700) 
            .attr("height", 100); 

var axisScale = d3.scale.linear() 
          .domain([0, 50]) 
          .range([0, 400]); 
var xAxis = d3.svg.axis() 
         .scale(axisScale) 
         .tickValues(d3.range(axisScale.domain()[0], axisScale.domain()[1] + 10, 10)); 

var xAxisGroup = svgContainer.append("g") 
            .attr("transform", "translate(20,50)") 
            .call(xAxis); 
} 
$.views.tags("graph", { 
init: function(tagCtx, linkCtx) { 
this.data = tagCtx.args[0]; 
this.svg = initChart(linkCtx.elem, this.data); 
}, 
onAfterLink: function(tagCtx, linkCtx) { 
    var tag = this; 
    $.observable(tag.data).observeAll(function() { 
     updateChart(tag.data, tag.svg); 
    }); 
    } 
}); 
console.log("==="); 
var tmpl = $.templates("#renderTemplate"); 
tmpl.link('#container'); 
+0

jsfiddle도 확인하십시오. https://jsfiddle.net/3hpw2du8/10/ 이제이 내용도 변경했습니다. –

+0

tmpl.link가 함수가 아닙니다. –

+0

jsfiddle에서 코드가 작동하는지 확인하십시오. 코드를 붙여 넣으십시오. Jsfiddle도 jquery가 누락되었습니다. –

관련 문제