我正在AngularJS中编写应用程序。我需要公开一个将由外部库调用的函数。
我需要进行第三方库调用
executeFunction(param)
并让我的角度应用程序做出相应的响应。
我的第一个想法是创建一个指令,我可以应用于一个页面,告诉页面监听这个事件(函数)被调用,但我似乎无法理解如何做此
答案 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)
您可以制作factory
或service
甚至更强大的解决方案来制作完整的模块
angular.modue("myLib")
.factory("myLibFactory",function(){
return{
executeFunction :function(param){}
}
})