编程语言
首页 > 编程语言> > javascript – 从遗留代码中调用AngularJS

javascript – 从遗留代码中调用AngularJS

作者:互联网

我正在使用AngularJS来构建与传统Flex应用程序交互的HTML控件. Flex应用程序中的所有回调都必须附加到DOM窗口.

例如(在AS3中)

ExternalInterface.call("save", data);

将会通知

window.save = function(data){
    // want to update a service 
    // or dispatch an event here...
}

在JS resize函数中,我想发送一个控制器可以听到的事件.似乎创建服务是最佳选择.你能从AngularJS外部更新服务吗?控制器可以监听服务中的事件吗?在一个experiment (click for fiddle)中,我似乎可以访问服务,但更新服务的数据不会反映在视图中(在示例中,< option>应该添加到< select>).

谢谢!

解决方法:

从角度到角度之间的互操作与调试角度应用或与第三方库集成相同.

对于任何DOM元素,您可以执行以下操作:

> angular.element(domElement).scope()获取元素的当前范围
> angular.element(domElement).injector()获取当前的应用程序注入器
> angular.element(domElement).controller()获取ng-controller实例的保持.

通过注射器,您可以获得角度应用中的任何服务.与范围类似,您可以调用已发布到它的任何方法.

请记住,对范围内的角度模型或任何方法调用的任何更改都需要包含在$apply()中,如下所示:

$scope.$apply(function(){
  // perform any model changes or method invocations here on angular app.
});

标签:javascript,angularjs,actionscript-3,externalinterface
来源: https://codeday.me/bug/20190911/1804606.html