我在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] 删除。
我来说两句