当前位置: 首页 > 面试题库 >

从旧版代码调用AngularJS

高德水
2023-03-14
问题内容

我正在使用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调整大小函数中调度一个控制器可以听到的事件。似乎创建服务是必经之路。您可以从AngularJS外部更新服务吗?控制器可以侦听来自服务的事件吗?在一个实验中(单击以拨弄小提琴),我确实可以访问服务,但更新服务的数据未反映在视图中(在示例中<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.
});


 类似资料:
  • 问题内容: 有没有人能将C#代码集成到Java应用程序中呢? 代码很小,所以我可以用Java重写,但是如果可能的话,我宁愿重用代码。不要重复自己,等等。 另外,我知道我可以将C#公开为Web服务或其他任何东西,但是其中包含一些安全性/加密功能,因此,我宁愿将其紧密集成。 编辑:它将在基于服务器的应用程序上,因此“下载”另一个运行时是无关紧要的。 问题答案: 有一个IL到Java字节码编译器Gras

  • gcc-g-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.0-openJDK-1.6.0.0.x86_64/include/-i/usr/lib/jvm/java-1.6.

  • 问题内容: 我的部门目前承担着维护相当大的COBOL代码库的任务。我们想知道如何添加新功能来满足业务需求。如今,COBOL程序员很难再出现了,我们还认为,使用Java或C#等更现代的语言可以提高生产率。 我们认为我们有四个选择: 从头开始重写所有内容,将旧应用程序留给自己,直到准备好进行替换 从头开始重写所有内容,使一些人可以维护旧的应用程序,以适应新的业务需求。 用现代语言编写所有新功能,并找到

  • 问题内容: 我正在使用c ++为node.js编写附加组件。 这里有一些片段: 我需要将一个JavaScript函数另存为回调,以便稍后调用。Client类是另一个对象的观察者,应从onAsyncMethodEnds调用javascript回调。不幸的是,当我调用函数“ BeInitiator”时,在回调Call()之前收到“ Bus error:10”错误 感谢建议 问题答案: 您不能从另一个线

  • 问题内容: 我有一个C函数,我想从C 调用。我无法使用“ ”这样的方法,因为C函数无法使用g 进行编译。但是使用gcc可以很好地编译。有什么想法如何从C ++调用函数吗? 问题答案: 像这样编译C代码: 然后是这样的C ++代码: 然后使用C ++链接器将它们链接在一起: 当您包含C函数的声明时,还必须告诉C ++编译器C头即将到来。因此开始于: 应该包含以下内容: (在此示例中,我使用了gcc,

  • 问题内容: 我不是在寻找像Web服务这样的常见答案。我正在寻找在同一台机器上运行的轻量级解决方案。 编辑:我正在寻找Java中调用.NET方法的方法 问题答案: 我相信Java可以与COM对话,.NET可以公开COM接口。因此,这可能是一种非常轻巧的解决方案,不需要任何第三方。还可以选择使用套接字在程序之间进行通信,这不需要在计算机上安装大量的IIS实例。