1

我做。我现在用这个指令 https://github.com/ONE-LOGIC/ngFlowchart

当我把静态数据..它显示输出请我plunker http://plnkr.co/edit/d2hAhkFG0oN3HPBRS9UU?p=preview

在角JS指令的例子,但是,当我使用$ HTTP要求,作出同样的JSON对象。它不显示使用$ http请求。我有相同的数据对象作为静态

http://plnkr.co/edit/Vts6GdT0NNudZr2SJgVY?p=preview

$http.get('data.json').success(function(data) { 
     console.log(data) 
     var arr = data 
     var model={}; 

     var new_array = [] 
     for (var i = 0; i < arr.length; i++) { 
      var obj = {}; 
      obj.name = arr[i].name; 
      obj.id = arr[i].id; 
      obj.x = arr[i].x; 
      obj.y = arr[i].y; 
      obj.color = '#000'; 
      obj.borderColor = '#000'; 
      var p = {}; 
      p.type = 'flowchartConstants.bottomConnectorType'; 
      p.id = arr[i].con_id 
      obj.connectors = []; 
      obj.connectors.push(p); 
      new_array.push(obj); 

     } 
     console.log('new array') 
     console.log(new_array) 
      model.nodes=new_array; 


     var edge = []; 
     for (var i = 0; i < arr.length; i++) { 
      if (arr[i].children.length > 0) { 

       for (var j = 0; j < arr[i].children.length; j++) { 
        var obj = {}; 
        obj.source = arr[i].con_id; 
        obj.destination = arr[i].children[j].con_id; 
        edge.push(obj); 
       } 

      } 

     } 
      model.edges=edge; 
     console.log(edge) 
     console.log("model") 
      console.log(JSON.stringify(model)) 
      $scope.flowchartselected = []; 
     var modelservice = Modelfactory(model, $scope.flowchartselected); 

    $scope.model = model; 
    $scope.modelservice = modelservice; 

    }) 
图表看我plunker

有没有更新?

+0

根据Plunkr,您的数据未找到。响应代码是404并且响应是: '{ “statusCode”:404, “error”:“Not Found” }' 由于您只提供'.success()'(顺便说一句,不推荐使用,请考虑切换到'.then()'),您无法捕获错误。 – BobChao87

+0

对不起,我会更新我的plunker – user944513

+0

http://plnkr.co/edit/Vts6GdT0NNudZr2SJgVY?p=preview – user944513

回答

1

Working Example

它现在的工作。

问题出在我们第一次加载指令时,它没有参数值。所以,当chart指令尝试初始化没有参数的图表时,它会得到一个错误。所以,它不会工作了。

如何解决问题?

只是在页面加载时给出一个虚拟参数。我已经给出了虚拟模型,因为

$scope.model = model; 
$scope.modelservice = modelservice; 

因此,首先您的图表将显示基于虚拟值的图表。之后,它使用来自服务器的数据填充图表($http.get()