Is it possible to run one Angular 2 app several times in one page?(是否可以在一页中多次运行一个 Angular 2 应用程序?)
问题描述
我正在从 asp.net 网络表单迁移到 Angular 4.我正在逐步完成.更换一个零件并将其投入生产.我在页面中多次加载相同的 Angular 应用程序时遇到问题.例如代码
I'm making migration from asp.net web forms to Angular 4. I'm making it step by step. Replacing one part and placing it in production. I face a problem with loading same Angular app several times in page. For example with code
<root tag="table-ep-component" data="5800"></root>
<root tag="table-ep-component" data="3333"></root>
页面中只有一个加载的应用程序 - 第一个.我怎样才能让它们同时工作?欢迎任何建议
there is only one loaded app in the page - the first one. How can I make them work both? Any suggestions are welcome
推荐答案
您可以使用 Applicationref.bootstrap
方法来完成它的工作:
You can use Applicationref.bootstrap
method to do it working:
abstract bootstrap<C>(
componentFactory: ComponentFactory<C>|Type<C>,
rootSelectorOrNode?: string|any): ComponentRef<C>;
正如我们所见,此方法可以采用 rootSelectorOrNode
参数,因此我们可以两次引导同一个组件.
As we can see this method can take rootSelectorOrNode
parameter so we can bootstrap the same component twice.
ngDoBootstrap
方法 @NgModule
可以帮助我们手动引导我们的应用程序:
ngDoBootstrap
method on your root @NgModule
can help us to manually bootstrap our application:
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule],
entryComponents: [AppComponent]
})
export class MenuModule {
ngDoBootstrap(appRef: ApplicationRef) {
const rootElements = document.queryselectorAll('root');
// cast due to https://github.com/Microsoft/TypeScript/issues/4947
for (const element of rootElements as any as HTMLElement[]){
appRef.bootstrap(AppComponent, element);
}
}
}
另见:
- Angular 2 独立组件
- 更改根模块之间的共享数据
- 获取引导组件
这篇关于是否可以在一页中多次运行一个 Angular 2 应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:是否可以在一页中多次运行一个 Angular 2 应用程序
基础教程推荐
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 将 XML 转换为通用列表 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 如何激活MC67中的红灯 2022-01-01