为jquery代码创建angularJs指令
我对AngularJs是新手。我有一个jquery代码,我计划创建一个AngularJs指令。如何在AngularJs指令中包装jquery代码。我只想使用相同的jquery代码,但想通过AngularJs指令调用代码。请让我知道这在AngularJs中是否可行 我正在用两个jquery部分更新帖子,我计划创建一个指令:为jquery代码创建angularJs指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我对AngularJs是新手。我有一个jquery代码,我计划创建一个AngularJs指令。如何在AngularJs指令中包装jquery代码。我只想使用相同的jquery代码,但想通过AngularJs指令调用代码。请让我知道这在AngularJs中是否可行 我正在用两个jquery部分更新帖子,我计划创建一个指令: $('#pie-chart1').highcharts({ title: { text: 'Exporting module is loa
$('#pie-chart1').highcharts({
title: {
text: 'Exporting module is loaded but buttons are disabled'
},
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]
}],
navigation: {
buttonOptions: {
enabled: false
}
}
});
这是可能的,但当然,没有银弹。有一些jquery的东西很容易移植到angular,还有一些更难。一般来说,你可以做任何事情,但困难程度可能会有所不同 编辑:在开始做你正在做的事情之前,你可能想查看以下内容:
您想要实现的目标已经实现,因此我建议您不要重新发明轮子或使用他们的指令,或者至少将其作为起点。在指令中,您可以使用jQuery。事实上,如果在Angular.js之前加载了jQuery,那么传递到链接函数中的
元素就已经是jQuery对象了
app.directive("myDirective", function() {
return {
link: function(scope, element) {
element.addClass("jquery"); // or other jQuery code
}
};
});
请注意,如果jQuery未在Angular.js之前加载,则该元素将包装在jqLite中,jQuery的子集随Angular.js一起提供
2014年8月8日编辑:
在你的问题中,我看到你在使用海图。这个编辑现在可能有点晚了,但是,也许快速浏览一下在指令中使用Highcharts的小应用程序会给你一些额外的见解:这个问题可能会有帮助:或者这篇博文:请查看我更新的问题,其中包含我计划与AngularJs集成的实际jquery代码。你的更新不会引入任何需要的相关信息答案也需要更新。据我所知,在angular指令中使用jquery操作DOM被认为是错误的做法,因为angular在scope.digest()上编译HTML,如果你在摘要之外修改DOM,那么你可能会在你的文档中引起疯狂的问题application@britztopher当您使用异步代码时,$digest
循环需要手动触发,但简单地添加一个类是无害的。“无害”一词的确切位置不在我的回答范围之内。OP要求在指令中封装jQuery代码,这是最有可能的。事实上,我更愿意在指令中封装大多数,例如jqueryui插件,而不是直接在控制器中使用它们。就我而言,一个明智的方法来解决什么是好的,什么是走得太远是所有人都需要的。请查看我更新的问题,其中包含我计划与AngularJsYep集成的实际jquery代码,检查现有的highcharts指令: