javascript - 如何使用 Highchartsng 动态添加新的 Highchart

标签 javascript jquery angularjs highcharts highcharts-ng

所以我想做的是,当用户单击一个按钮时,我想向页面添加一个新的 highchart 元素。目前我看到我的图表容器出现了,但图表没有。

这是我正在尝试做的事情:

//This config works when I statically load a graph
$scope.someConfig ={ options: {chart:{type:'pie'}}, title :{text: 'Test'}, series:[{data: [1,2,3,4]}]} 

angular.element($('myElement')).append{
"<div class='myContainerClass'>"+
  "<highchart config='config' style='height: 100%; width: 100%'>"+"<\highchart>"+
"</div>"
);

我在这方面还是很新,所以我想知道我做错了什么

任何建议都会很棒!

谢谢~

最佳答案

您需要使用 $compile API 编译 该 DOM,然后再将其附加到所需的元素。 $compile 服务将使绑定(bind)在该 DOM 上工作,范围在括号中指定,如 ($scope)

代码

var compiledDOM = $compile("<div class='myContainerClass'>"+
  "<highchart config='config' style='height: 100%; width: 100%'>"+"<\highchart>"+
"</div>")($scope)
angular.element($('myElement')).append(compiledDOM)

除了附加 DOM,您还可以考虑 ng-repeat 指令,它会根据提供给它的数组动态呈现 DOM。基本上它会呈现该 html,直到达到该数组长度。

所以在您的情况下,您可以填充 charts 对象,它基本上是一个数组。当用户添加新的 chart 时,将一个对象推送到 charts 对象,这将 config 部分像 charts.push({config: configObject})

<div ng-repeat="chart in charts" class='myContainerClass'>"+
      <highchart config='chart.config' style='height: 100%; width: 100%'><\highchart>
</div>

切换标志 showHighChart 以显示和隐藏 highcharts DOM。

关于javascript - 如何使用 Highchartsng 动态添加新的 Highchart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400544/

相关文章:

javascript - 表格中的重叠单元格就像书中的页面

javascript - 显示隐藏 <li> 元素

javascript - 使用 jQuery 在 2 个 div 之间移动元素

AngularJS : Load js file through UI router

javascript - 如何将 delay() 与 each() 一起使用?

javascript - 根据 innerHTML 显示/隐藏 HTML 元素

javascript - PhantomJS 获取属性

javascript - 仅当 &lt;input&gt; 元素未获得焦点时触发 jQuery keyup 事件

javascript - AngularJS 更改 URL 但不查看

javascript - 使用 angularjs 禁用文本区域