angular - 将外部数据传递给 Angular-CLI 应用程序
问题描述
我有一个从另一个外部页面启动的 Angular-CLI 应用程序(Angular 6)。所以起初index.html
是被显示的。我可以index.html
通过使用postMessage
方法从外部页面异步发送数据。我的问题是如何将这些数据传递给我的 Angular 应用程序。我有两个问题:
第一个是
main.ts
立即启动,到那时我还没有收到用postMessage
. 那么,我该如何推迟 main.ts呢?第二件事是如何将数据发送到
main.ts
以及如何使其对我的应用程序可用?
索引.html
<body>
<script>
window.onload = function () {
window.parent.postMessage("Loaded", "*");
}
window.addEventListener("message",
function(event) {
if (event.origin !== 'http://localhost:8080') {
return;
}
console.log("Yes!!!", event.data);
});
</script>
<app-root>Loading...</app-root>
</body>
main.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
export function getBaseUrl() {
return document.getElementsByTagName('base')[0].href;
}
const providers = [
{ provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] }
];
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic(providers).bootstrapModule(AppModule)
.catch(err => console.log(err));
解决方案
推荐阅读
- python - 具有多处理池的多个只读对象的共享内存
- typescript - RxjS shareReplay:如何重置其值?
- react-native - React Native Ignite CLI 2 - 无法解析模块
- r - 替换数据框中列中的特定值
- twilio - 如何在 twilio 子帐户上创建 api 密钥
- ios - 如何加密和解密 IOS info.plist 文件中的插件密钥和 ID 以防止科尔多瓦移动应用程序的不安全数据
- java - 对目录结构中的文件进行延迟迭代
- javascript - 未捕获的类型错误:无法读取未定义的属性“搜索框”
- r - R 正则表达式
- sockets - 在 UWP 应用中接收 UDP 数据报需要做什么?