如何在AngularJS中公开公共函数

时间:2015-04-03 19:32:21

标签: javascript angularjs

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

我需要进行第三方库调用

executeFunction(param)

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

我的第一个想法是创建一个指令,我可以应用于一个页面,告诉页面监听这个事件(函数)被调用,但我似乎无法理解如何做此

2 个答案:

答案 0 :(得分:1)

如果通过"在图书馆外面"你的意思是纯粹的javascript / jquery,这个问题有很多答案。他们都提出了相同的解决方案,即Controller通过DOM元素id公开,请参阅以下链接:

Call Angular Function with Jquery

AngularJS. How to call controller function from outside of controller component

创建工厂或服务无济于事,因为您无法将角度服务注入/公开给jquery函数。

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

jQuery客户活动:

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

我认为所有这些都是不好的做法。我建议你重新考虑你想要完成的设计。

答案 1 :(得分:0)

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

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