javascript - 在angularJS中点击不同的按钮通过ajax来控制echarts显示不同的数据呢?
大家讲道理
大家讲道理 2017-04-11 09:45:21
[JavaScript讨论组]


要实现上图的功能,点击今日、昨日、本月,通过ajax让echarts显示不同的数据,如何实现呢?目前小弟只写了一个静态页面,通过jquery实现倒是明白,但是放在angularJS中就不明白了。请大神指点!以下是本人静态页面的数据:

// echarts (来源统计)
    app.directive('echartSource', [function() {
        return {
            restrict: 'AE',
            scope: {
                echartSource: '='
            },
            link: link
        };
        console.log(app);
        function link(scope, element, attr) {
            var my_Chart = echarts.init(element[0]);

            // 指定图表的配置项和数据
            var option = {
                title: {
                    text: '折线图'
                },
                tooltip: {
                    trigger: 'axis',
                    foramtter:function(params){
                        console.log(params)
//                这里处理你想要的数据
//                 return ;
                    }
                },
                legend: {
                    data:['总访问量']
                },
                grid: {
                    left: '1%',
                    right: '2%',
                    bottom: '3%',
                    containLabel: true
                },
                toolbox: {
                    feature: {
                        saveAsImage: {}
//                mark:{show:false}
                    }

                },
                xAxis: {
                    type: 'category',
                    boundaryGap: false,
                    data: ['00点','01点','02点','03点','04点','05点','06点','07点','08点','09点','10点','11点','12点','13点','14点','15点','16点','17点','18点','19点','20点','21点','22点','23点']
                },
                yAxis: [{
                    type: 'value',
                    boundaryGap: false,
                    splitNumber:6,
                    scale: true,
//            控制y轴线是否显示
                    axisLine:{show:false},
//            控制网格线是否显示
                    splitLine:{
                        show:true
                    },
//            去除y轴上的刻度线
                    axisTick: {
                        show: false
                    }
                }],
                series: [
                    {
                        name:'总访问量',
                        type:'line',
                        stack: '总量',
                        itemStyle : {
                            normal : {
                                color:'#CA77FF',
                                lineStyle:{
                                    color:'#CA77FF'
                                }
                            }
                        },
                        data:[200, 150, 100, 60, 150, 430, 560,600,800,850,1000,1050,200, 150, 100, 60, 150, 430, 560,600,800,850,1000,1050]
                    }
//            {
//                foramtter:{
//                        "①广东深圳":234,
//                        "①广东东莞":234,
//                        "①广东惠州":123,
//                }
//            }
                ]
            };
            // 使用刚指定的配置项和数据显示图表。
            my_Chart.setOption(option);

            // 双向传值
            // scope.$watch('echart', function(n, o) {
            //  if (n === o || !n) return;
            //  myChart.setOption(n);
            // });

            //当浏览器窗口发生变化的时候调用p的resize方法
            window.addEventListener('resize', chartResize);

            scope.$on('$destory', function() {
                window.removeEventListener('resize', chartResize);
            })

            function chartResize() {
                my_Chart.resize();
            }
        }
    }]);
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
大家讲道理

angular 到没用过 要是通过按钮来控制数据 当点击按钮时 调AJAX 然后刷新echarts 容器 在调echarts初始化方法并把数据传进去 就哦了

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号