Javascript 如何使用angular js在指令中给出click事件?
你能告诉我如何在指令中给出点击事件吗?我使用highchart.js(条形图)制作了一张图表。我想在该图表中显示click事件吗 我发现使用jquery时,他们会给出这样的指令。但是我们怎么能给出我们的指令呢?单击事件示例 我们如何给出click事件输入输出指令? 这是我的密码Javascript 如何使用angular js在指令中给出click事件?,javascript,angularjs,angularjs-directive,highcharts,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Directive,Highcharts,Angularjs Ng Repeat,你能告诉我如何在指令中给出点击事件吗?我使用highchart.js(条形图)制作了一张图表。我想在该图表中显示click事件吗 我发现使用jquery时,他们会给出这样的指令。但是我们怎么能给出我们的指令呢?单击事件示例 我们如何给出click事件输入输出指令? 这是我的密码 .directive('chart',function(){ 返回{ 限制:'E', 模板:“”, 范围:{ 图表数据:“=值”, chartObj:“=?” }, 是的, 替换:正确, 链接:函数($scope、$
.directive('chart',function(){
返回{
限制:'E',
模板:“”,
范围:{
图表数据:“=值”,
chartObj:“=?”
},
是的,
替换:正确,
链接:函数($scope、$element、$attrs){
//图表数据更改时更新
$scope.$watch('chartData',函数(值){
如果(!值)
返回;
//如果chartData.chart尚不存在,请启动它
$scope.chartData.chart=$scope.chartData.chart |{};
//如果给定设置中未指定任何内容,请使用默认值
$scope.chartData.chart.renderTo=$scope.chartData.chart.renderTo | | |$element[0];
如果($attrs.type)
$scope.chartData.chart.type=$scope.chartData.chart.type | |$attrs.type;
如果($attrs.height)
$scope.chartData.chart.height=$scope.chartData.chart.height | |$attrs.height;
如果($attrs.width)
$scope.chartData.chart.width=$scope.chartData.chart.type | |$attrs.width;
$scope.chartObj=新的Highcharts.Chart($scope.chartData);
});
}
};
})
对不起。这是你问题的解决办法。如果您正在使用库,那么它们应该在angular中为您提供回调或任何其他可选函数
如果没有找到,并且找到了jquery,则可以使用相同的jquery代码在angular中使用相同的jquery功能
如何使用Angular:-(?在Angular中,使用了指令
代码如下:
Html
为您工作:
在jquery示例中,您直接传递函数,如下所示
click: function () {
alert('Category: ' + this.category + ', value: ' + this.y);
}
但在这个示例中,您将作为JSON字符串传递,因此它无法解析函数
"events": {
"click": "function () {alert('Category: ' + this.category + ', value: ' + this.y)}"
}
因此,在您的angular示例中,像在jquery示例中一样直接传递输入。然后,您的代码将工作。请提供plunker谢谢您的回答,但它在我的plunker中不工作。为什么?您在单击时使用元素。这里的元素是整个图表。因此,当您单击图表时,整个图表将被单击。您需要找到一个回调函数。而不是在指令中混合使用angular和jquery。按照他们解释的方式使用普通jquery。要传递数据,请使用angular Model,您将angular和jquery混合使用就是为了得到这个。像他们说的那样使用普通jquery。或者问他们如何使用highcharts的回调函数。因为它是付费版本,我无法进一步检查。
.directive("directiveName", [function () {
return {
restrict: "A",
link: function ($scope, $element, $attributes) {
var char=$attributes.id;
$("#"+char).highcharts({
chart: {
type: 'column'
},
xAxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
},
plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function () {
alert('Category: ' + this.category + ', value: ' + this.y);
}
}
}
}
},
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]
}]
});
}
}
}]);
click: function () {
alert('Category: ' + this.category + ', value: ' + this.y);
}
"events": {
"click": "function () {alert('Category: ' + this.category + ', value: ' + this.y)}"
}