创建高图表点击功能时丢失了 Angularjs 范围
Angularjs scope lost when creating highcharts click function
在使用 Angularjs、Highcharts 和 highcharts-ng 指令构建的图形节点上创建单击函数时,我遇到了范围问题。
我遇到的问题是我在单击功能中放置的任何角度指令或功能都不起作用。
这是我问题的简化版本 - http://jsfiddle.net/47m46/8/
单击任何图形节点以查看正在调用的单击函数。单击关闭按钮应触发一个ng-click事件,该事件加载一个显示警报的简单函数
这是我的点击函数生成的 html:
<div ng-controller="myctrl">
<button ng-click="closeDrillDown()">Close</button>
<h2>Positive Sentiment</h2>
<p class="drillDownInfo"><strong>20%</strong> of posts where we can determine a sentiment are Positive</p>
</div>
这是使用 ng-click 调用的函数,它不会被触发
$scope.closeDrillDown = function() {
alert('function works');
};
highcharts-ng 指令的作者在下面的线程中提到 https://github.com/pablojim/highcharts-ng/issues/56"这些事件(点击功能)将在角度世界之外,所以你需要用 apply 或类似的东西来包装它们。
所以我的问题是:如何让我的高图表点击函数访问 Angularjs?我尝试使用 $scope.$apply(),但我对角度这一方面的有限了解并没有给我任何结果。
如上述评论所述,此问题的解决方案如下:
http://jsfiddle.net/themyth92/47m46/10/
var content = '<div id = "postListPopUpContainer"><div id = "postListPopUp"><div><button ng-click="closeDrillDown()">Close</button><h2>' + this.category + ' ' + this.series.name + '</h2>' +
'<p class="drillDownInfo"><strong>' + this.y + '%</strong> of posts where we can determine a sentiment are ' + this.category + '</p></div></div></div>';
$('#myCtrl').append($compile(content)($scope));
要注意的部分是我们使用 $compile() 的地方。这会将生成的 html 放入 Angularjs 上下文中。
相关文章:
- AngularJS:'$范围未定义'
- AngularJS范围没有更新
- AngularJS范围变量Unwatch
- 如何使用EnquireJS使AngularJS范围变量依赖于媒体查询
- AngularJS-范围差异
- AngularJS范围未定义
- AngularJS范围定义的函数为null
- AngularJS-范围错误:''之后超过了最大调用堆栈大小;应用程序启动
- AngularJS范围监视未触发
- 使用angularjs范围变量初始化javascript变量
- 将来自多个控制器的 AngularJS 范围对象合并到一个对象中
- angularJS范围在HTTP get之后不会更新
- 创建高图表点击功能时丢失了 Angularjs 范围
- 将javascript变量传递给angularjs范围
- 将 json 数组中的数组映射到 Angularjs 范围
- 从内部函数更改 AngularJS 范围变量
- jQuery中的AngularJS范围
- 在验证Symfony2中的搜索表单后更新AngularJS范围
- AngularJS 范围问题
- 在视图中简单呈现 AngularJS 范围数据