2017-04-11 68 views
0

當我單擊按鈕時,我從視圖模型傳遞數據數組。在d3.json函數中,我對視圖模型使用json_encode將其轉換爲JSON對象。當我檢查它的網頁上,它並轉換,但我得到的將JSON數據傳遞給d3.json時發生錯誤

"Uncaught SyntaxError: missing) after argument list".

誰能告訴我什麼,我做錯了什麼?

d3.json("<?php echo json_encode($viewmodel) ?>", function(error,data){ 
     data.forEach(function(d) { 
      d.projectdate = parseDate(d.projectdate); 
      d.Cost = +d.Cost; 
     }); 

      var svg = d3.select("body") 
         .append("svg") 
         .attr("id", "chart") 
         .attr("width", w) 
         .attr("height", h); 

      svg.selectAll("bar") 
       .data(data) 
       .enter() 
       .append("rect") 
       .classed("bar", true) 
       .attr("x", 0) 
       .attr("y", function(d, i){ 
        return i * 20 
       }) 
       .attr("width", function(d,i){ 
        return d; 
       }) 
       .attr("height", 20); 


    }); 

回答

1

d3.json()需要一個url作爲它的第一個參數,而不是JSON字符串。這將依次請求該特定URL處的指定文件從中加載JSON。

然而,就你而言,直接將JSON分配給data變量可能更容易。

var data = JSON.parse("<?php echo json_encode($viewmodel) ?>"); 

data.forEach(function(d) { 
    //... 
});