是否可以将信息从 Angular 组件传递到 AngularJS 组件?

Posted

技术标签:

【中文标题】是否可以将信息从 Angular 组件传递到 AngularJS 组件?【英文标题】:Is it possible to pass information from an Angular component to an AngularJS component? 【发布时间】:2019-08-03 23:42:26 【问题描述】:

我正在开发一个混合应用程序,它运行一个主要的 Angular (7) 组件,其中有一个升级的(通过 ngUpgrade)运行甘特图的 AngularJS 组件。我正在尝试将它需要的数据从 Angular 组件的控制器传递到 AngularJS 控制器,但是我没有找到关于这个主题的资源,这让我认为这是不可能的。无论如何,我想问一下,以防万一有人试过这个。

提前谢谢你!

【问题讨论】:

Running Angular and AngularJS frameworks side by side的可能重复 @GuyYogev 建议的副本不解决传递信息的问题。 - From review. 【参考方案1】:

你可以使用全局对象,比如window。添加到这个对象的属性通道,如 RxJS/BehaviourSubject。记住导入 RxJs 库。

    在 index.html 中添加定义 chanel 的脚本
<body>
<script>
 window['myChanel'] = new BehaviourSubject()
</script>
</body>
    在 AngularJS 应用程序中,您需要设置观察者:
let transData;
window.myChanel.pipe(tap(value => transData = value ))).subscribe()
    在 Angular 应用中,使用 chanel 发出值
window.myChanel.emit('myTestValue')

【讨论】:

以上是关于是否可以将信息从 Angular 组件传递到 AngularJS 组件?的主要内容,如果未能解决你的问题,请参考以下文章

使用使用 Angular 6 的服务将 JSON 文件从一个组件传递到另一个组件

将数据从一个组件传递到另一个 Angular 2

从 Angular 父组件传递到子组件的数据在子组件中未定义

将猫鼬数据传递到 Angular 4 组件“详细信息”页面?

在 Angular 中,当组件不是父/子时,如何将值从一个组件传递到另一个组件?

将组件渲染到另一个组件Angular 5