angularJS指令中的Highchart

罗宁

我在angularJS指令中包装了一个高位图表,并且试图添加一个应该显示在图表下方的按钮。问题是该按钮不存在。

HTML:

<div id="container" my-chart style="height: 400px; margin-top: 1em"></div>

JS:

var app = angular.module('app', []);
app.directive('myChart', function () {
    return {
        restrict: 'A',
        replace: true,

        template: '<div><div id="chart"></div><div><button id="btn">Click</button></div><div>',
        link: function (scope, elem, attrs) {
            elem.highcharts({
                xAxis: {
                    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
                },

                series: [{
                    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
                }]

            });
        }
    }
});

请以这个JsFiddle为例。

更新:这是实现答案后的固定JsFiddle

克里斯

这是因为您正在对元素调用.highcharts(),因此它将删除内部的所有内容并在其中呈现图表。尝试使用如下模板:

<div>
    <div id="chart"></div>
    <div><button id="btn">Click</button></div>
</div>

然后在您的指令链接函数调用中:

$("#chart").highcharts({})

除了此ID选择器之外,您还可以使用所需的选择器。您可以放置​​类,然后使用类图在元素子元素上调用它,例如:

$(elem).children(".chart").highcharts({...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章