是否可以将信息从 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 父组件传递到子组件的数据在子组件中未定义
将猫鼬数据传递到 Angular 4 组件“详细信息”页面?