如何使用RequireJS AngularJS和Google可视化API

如何使用RequireJS AngularJS和Google可视化API,angularjs,requirejs,google-visualization,angularjs-directive,Angularjs,Requirejs,Google Visualization,Angularjs Directive,想知道是否有人让RequireJS、ANgularJS和Google可视化API一起工作。我似乎无法使图表正常运行。 我遇到的主要问题是google.setOnLoadCallback()没有运行。 下面是我的代码。如果有另一个图表库更容易与RequireJS一起使用,我不会完全相信Google可视化API define([ 'jquery'],function ( $) { return function () { return { restrict: 'A',

想知道是否有人让RequireJS、ANgularJS和Google可视化API一起工作。我似乎无法使图表正常运行。 我遇到的主要问题是google.setOnLoadCallback()没有运行。 下面是我的代码。如果有另一个图表库更容易与RequireJS一起使用,我不会完全相信Google可视化API

define([ 'jquery'],function ( $) {
return function () {
    return {
        restrict: 'A',

        link: function (scope, lElement, attrs) {

            console.log("loaded google jsapi");

              console.log("google");

            google.load("visualization", "1", {packages:["corechart"]});


            google.setOnLoadCallback(drawChart);
            function drawChart() {
                console.log("we are in the call back");
                var data = google.visualization.arrayToDataTable([
                    ['Year', 'Sales', 'Expenses'],
                    ['2004',  1000,      400],
                    ['2005',  1170,      460],
                    ['2006',  660,       1120],
                    ['2007',  1030,      540]
                ]);

                var options = {
                    title: 'Company Performance',
                    vAxis: {title: 'Year',  titleTextStyle: {color: 'red'}}
                };

                var chart = new google.visualization.BarChart(lElement[0]);
                chart.draw(data, options);
            }

            console.log("called google.load for visualization");
        }
    }
}
});

如果有人让eh-three一起工作,也许您可以解释或发布一个指向JSFidlle的链接

我不知道这是否能解决您的问题,但是google loader已经知道在其他函数中被调用的问题。其他环境中的用户已经成功地在load调用中设置了回调函数,而不是在
#setOnLoadCallback
方法中设置了回调函数。尝试使用以下方法:

define(['jquery'],function ( $) {
    return function () {
        return {
            restrict: 'A',
            link: function (scope, lElement, attrs) {
                function drawChart() {
                    var data = google.visualization.arrayToDataTable([
                        ['Year', 'Sales', 'Expenses'],
                        ['2004',  1000,      400],
                        ['2005',  1170,      460],
                        ['2006',  660,       1120],
                        ['2007',  1030,      540]
                    ]);

                    var options = {
                        title: 'Company Performance',
                        vAxis: {title: 'Year',  titleTextStyle: {color: 'red'}}
                    };

                    var chart = new google.visualization.BarChart(lElement[0]);
                    chart.draw(data, options);
                }
                google.load("visualization", "1", {packages:["corechart"], callback: drawChart});
            }
        }
    }
});

为什么这会被否决?解决了我的问题!谢谢!