想把echarts加到angularjs里,照着网上轮了一个,发现只有单个图表的时候一切正常,但当用到for循环生成的div里的时候,由于在调用link函数的时候对应的div还没有生成因此echarts.init会出错。
代码如下:
app.directive("bar", function() {
  return {
    restrict: 'AE',
    scope: {
      'id': '@',
      'height': '@',
      'legend': '=',
      'item': '=',
      'data': '='
    },
    replace: true,
    template: '<div style="height:{[{height}]}px;", id="{[{id}]}"></div>',
    link: function($scope, element, attrs, controller) {
      var option = {
        title: {
            text: 'ECharts 入门示例'
        },
        tooltip: {},
        legend: {
            data:['销量']
        },
        xAxis: {
            data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
        },
        yAxis: {},
        series: [{
            name: '销量',
            type: 'bar',
            data: [5, 20, 36, 10, 10, 20]
        }]
      };
      // 问题在这里:有id但拿不到对应的div。返回的div为null
      var div = document.getElementById($scope.id) 
      // 直接用传进来的element也不对。
      var chart = echarts.init(element)
      chart.setOption(option)
    }
  }
})这是对应的HTML
<div class="row">
  <div class="col-md-4" ng-repeat="div in universes">
    <div class="panel panel-default" >
      <div class="panel-heading">{[{div.name}]}</div>
      <div class="panel-body">
        <div bar height="250" id="{[{'univ-'+div.id}]}"></div>
      </div>
    </div>
  </div>
</div>请问应当如何解决?
--
FROM 180.167.67.*