Angular2 和 Flex 之间的通信
Communication between Angular2 and Flex
如何在 flex (swf) 应用程序和 angular2 应用程序之间进行通信?
我知道如何使用 js 和 flex,但我不知道 flex 如何找到 angular2 方法。
使用 JS:只需要像这样的方法:
function flexUp() {
console.log('Flex Up');
}
在 flex 中,调用 JS 方法:
ExternalInterface.call("flexUp");
我是 JS/Angular2 世界的新手。
您可以在 flex 中触发事件并在 Angular
中收听它们
或从 Angular 组件、指令或服务创建方法,如
中所述
好的代码:
灵活:
ExternalInterface.call("window.angularFlexComponent.initFlex");
在 Angular2 中:
- 在flex.d.ts中:
interface Window {
angularFlexComponent: any;
}
- 在flex.components.ts中:
import {Component, NgZone, OnDestroy} from '@angular/core';
@Component({
selector: 'flex',
templateUrl: 'app/components/flex/flex.html'
})
export class FlexComponent implements OnDestroy {
constructor(private _ngZone: NgZone) {
window.angularFlexComponent = { initFlex: this.initFlex.bind(this), zone: _ngZone };
}
initFlex(): void {
console.log('Artemis Flex Up');
}
ngOnDestroy() {
window.angularFlexComponent = null;
}
}
如何在 flex (swf) 应用程序和 angular2 应用程序之间进行通信?
我知道如何使用 js 和 flex,但我不知道 flex 如何找到 angular2 方法。
使用 JS:只需要像这样的方法:
function flexUp() {
console.log('Flex Up');
}
在 flex 中,调用 JS 方法:
ExternalInterface.call("flexUp");
我是 JS/Angular2 世界的新手。
您可以在 flex 中触发事件并在 Angular
或从 Angular 组件、指令或服务创建方法,如
好的代码:
灵活:
ExternalInterface.call("window.angularFlexComponent.initFlex");
在 Angular2 中:
- 在flex.d.ts中:
interface Window {
angularFlexComponent: any;
}
- 在flex.components.ts中:
import {Component, NgZone, OnDestroy} from '@angular/core';
@Component({
selector: 'flex',
templateUrl: 'app/components/flex/flex.html'
})
export class FlexComponent implements OnDestroy {
constructor(private _ngZone: NgZone) {
window.angularFlexComponent = { initFlex: this.initFlex.bind(this), zone: _ngZone };
}
initFlex(): void {
console.log('Artemis Flex Up');
}
ngOnDestroy() {
window.angularFlexComponent = null;
}
}