我必须向Angular JS应用程序添加具有回调功能的第三方JavaScript插件。

JavaScript插件提供了如下功能:

thirdPartyFunction(parameter1, parameter2, parameter3, callback);


在回调函数中,我得到插件计算的结果。

回调函数如下所示:

callback(resultobject)
{ ... }


我想在我的角度应用程序中显示结果。如何在$ scope中获得resultObject?到目前为止,尚无法重写JavaScript插件。

我的想法是提供像这样的有角度的服务,但是我应该如何实现该服务?:

app.factory('myservice', function () {

    function callback(resultobject) {
    ???
    }


    return {

        getResult: function(parameter1, parameter2, parameter3) {
        thirdPartyFunction(parameter1, parameter2, parameter3, callback);
            return ???;
        }

    };
});

最佳答案

服务可能对您没有帮助。查看角度directives here。根据插件在页面上的集成方式,您必须创建一个公开插件功能的指令。

指令创建自己的作用域,并且可以广播\发出可以发送到控制器的通道的消息,您可以在控制器上更新模型,在插件回调上调用$ scope.apply(),然后刷新UI

如果您可以直接在Controller中引用该插件,那么异步回调后您唯一需要做的就是更新模型并调用$ scope.apply()

07-28 03:42
查看更多