从Angular控制器调用外部库中的函数

时间:2019-01-30 14:18:52

标签: javascript angularjs angularjs-scope

我们在网站上放置了一个脚本,该脚本用于生成弹出窗口/模式。

可以通过调用

来调用模式
ModalObject.Triggeronclick(someModalId)

但是,我无法从Angular控制器调用此函数(并且我需要访问控制器中的数据和逻辑以触发调用)。

我尝试致电

window.ModalObject.Triggeronclick(someModalId) 

...但是我得到了

"TypeError: Cannot read property 'triggerOnclick' of undefined".

如何从我的应用程序控制器调用此函数?

2 个答案:

答案 0 :(得分:1)

如果您坚持使用ModalObject而不是特定于角度的模态资源,则应创建一个返回$window.ModalObject的工厂/服务-$ window是角度注入的窗口对象。然后,您可以将该工厂/服务注入到控制器中。

    app.factory('modalObject', ($window) => {
        return $window.ModalObject
    })

假定ModalObject在窗口对象上可用。

然后将modalObject注入控制器。

但是,还有其他一些选项,特别是角度模态:

答案 1 :(得分:0)

您可以尝试将资源添加到index.html并使用来访问全局变量

(<any>window).document

您通常会打电话给的地方

document