如何在AngularJS中公开公共函数
How to expose public function in AngularJS
我正在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/
然而,我认为这一切都是不好的做法。我建议你重新考虑你正在努力实现的目标。
您可以制作factory
或service
,甚至更强大的解决方案将是制作完整的模块
angular.modue("myLib")
.factory("myLibFactory",function(){
return{
executeFunction :function(param){}
}
})
相关文章:
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 使用OnClick函数(AngularJS)创建指令
- Promise创建自定义失败不是函数Angularjs错误
- 在文本点击时调用一个函数:AngularJS
- 参数不是函数-AngularJS未定义
- 获取类型错误:未定义不是函数 AngularJS
- 使用相同的函数 AngularJS 进行多表排序
- 两个不同视图上的两个按钮调用相同的函数 AngularJS
- .all()在解析函数AngularJS中
- 在UI中显示链接函数angularJs的数据
- TypeError:未定义不是函数-AngularJS
- 解析函数AngularJS超时
- 执行一个特定时间段的函数-AngularJs
- jQuery.AngularJS中的ajaxStart等效函数| AngularJS中的Ajax事件处理程序
- isValid表单验证,然后运行函数AngularJS
- 在所有控制器中对同一个事件执行同一个函数——AngularJS
- "未捕获的TypeError: undefined不是函数" AngularJS-BreezeJS
- 从控制器到外部函数angularjs的对象访问
- 如何在指令链接函数angularjs中显示来自对象的数据
- 使用$scope.$parent.$$childHead从控制器访问指令函数.AngularJS中的functionNa