如何在AngularJS中公开公共函数

How to expose public function in AngularJS

本文关键字:函数 AngularJS      更新时间:2023-09-26

我正在AngularJS中编写一个应用程序。我需要公开一个将由外部库调用的函数。

我需要让我的第三方图书馆呼叫

executeFunction(param)

并让我的angular应用程序做出相应的响应。

我的第一个想法是创建一个指令,我可以将其应用于页面,告诉页面侦听要调用的事件(函数),但我似乎无法理解如何执行此操作。

如果您所说的"外部库"是指纯javascript/jquery,那么这个问题有很多答案。他们都提出了相同的解决方案,即控制器通过DOM元素id公开,请参阅以下链接:

用Jquery 调用角函数

AngularJS。如何从控制器组件外部调用控制器功能

创建工厂或服务没有帮助,因为您没有办法向jquery函数注入/公开角度服务。

与上述解决方案不同,我建议尝试编写一个事件处理程序。您可以创建一个angularjs指令,该指令带有一个注册jquery自定义事件侦听器的链接函数。该指令将包含一个嵌套的控制器来处理所需的逻辑。然后,您的jquery/javascript代码可以简单地触发事件(传递所需的任何数据)

jQuery客户事件:

https://learn.jquery.com/events/introduction-to-custom-events/

然而,我认为这一切都是不好的做法。我建议你重新考虑你正在努力实现的目标。

您可以制作factoryservice,甚至更强大的解决方案将是制作完整的模块

angular.modue("myLib")
.factory("myLibFactory",function(){
return{
executeFunction :function(param){}
}
})