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