2016-11-04 3 views
1

がないように私持って次のディレクティブ:私はこの私を取得、次のエラーを実行しようとするとGoogleのチャート機能

<div></div> 

:次のHTMLを持って

angular.module('Division').directive('divisionChart', function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'js/helpers/Division/directives/division-chart/division-chart.html', 
     scope: {}, 
     link: function (scope, element, attr) { 
      var data = { 
       "cols": [ 
        {"label": "Name", "pattern": "", "type": "string"}, 
        {"label": "Manager", "pattern": "", "type": "string"}, 
        {"label": "ToolTip", "pattern": "", "type": "string"} 
       ], 
       "rows": [ 
        { 
         "c": [ 
          {"v": "1", "f": "Mike O."}, 
          {"v": ""}, 
          {"v": "The President"} 
         ] 
        }, 
        { 
         "c": [ 
          {"v": "2", "f": "Jim"}, 
          {"v": "1"}, 
          {"v": "VP"} 
         ] 
        }, 
        { 
         "c": [ 
          {"v": "3", "f": "Alice"}, 
          {"v": "1"}, 
          {"v": ""} 
         ] 
        }, 
        { 
         "c": [ 
          {"v": "4", "f": "Bob"}, 
          {"v": "2"}, 
          {"v": "Bob Sponge"} 
         ] 
        }, 
        { 
         "c": [ 
          {"v": "Carol"}, 
          {"v": "4"}, 
          {"v": ""} 
         ] 
        } 
       ] 
      }; 


      // Instantiate and draw our chart, passing in some options. 
      var chart = new google.visualization.OrgChart(element[0]); 
      chart.draw(data); 
     } 
    } 
}); 

TypeError: a.S is not a function 

インデックスに必ずgooglechartを含めるようにしました。

<script src="http://www.google.com/jsapi?ext.js"></script> 
<script>google.load('visualization', '1', {packages: ['orgchart']});</script> 

誰かが間違っていることを教えてもらえますか?

答えて

1

まず、Googleのチャートライブラリの現在のローダーを使用することをお勧め...

<script src="https://www.gstatic.com/charts/loader.js"></script>

release notesによると...変わる

The version of Google Charts that remains available via the jsapi loader is no longer being updated consistently. Please use the new gstatic loader (loader.js) from now on.

唯一のものはload文ですそれに続く...

google.charts.load('current', { 
    callback: drawChart, 
    packages: ['corechart'] 
}); 

ノートコールバックが

google.charts
google.visualization

+0

を発射するまで、あなたは以下の名前空間から作成するべきではありませんjsapiローダーと同じように、load文がcallback
を持ってcallbackは、それがなかったありがとうございました。それを反応させることについて何か知っていますか?私のサイトでオーバーフローしているように見えるので、 –

+0

は、 'window'' 'resize''のチャートを再描画するだけです - (ここは例です)(http://stackoverflow.com/a/37412664/5090771) – WhiteHat