目前我正在使用这种结构让我的路由器插座作为主应用程序运行:
@Component({
selector: 'my-dummy-app',
template: '<router-outlet></router-outlet>'
})
export class MyDummyApp {
}
是否可以删除虚拟应用程序?我没有任何成功。我已尝试将bootstrap
留空,或将我的路由器组件保留在entry
集合中,但似乎没有模块配置可用。
Angular似乎倾向于有一个主要组件来引导。
答案 0 :(得分:2)
通常你会在AppModule中引导AppComponent,其模板在某些地方是+ <router-outlet>
。之后,您将初始化AppModule作为入口点。
如果没有主要组件作为切入点,我无法想象你怎么能告诉角度应该是应用程序的切入点。
我会说它不可能。当您在AppModule中的bootstrap中声明一个组件时,angular将在index.html中查找其css选择器。如果没有找到 - &gt;错误。另一方面,如果你没有在app模块的bootstrap部分内声明任何内容 - &gt;错误。此外,如果您尝试在应用程序模块中引导RouterOutet指令
Uncaught Error: RouterOutlet cannot be used as an entry component.
NgModule FAQ的以下引用似乎也支持这一点:
您可以将子组件嵌入顶部组件的模板中。或者,通过为顶层组件提供
<router-outlet>
来使其成为路由主机。定义子路由并让路由器将模块组件加载到该出口。
答案 1 :(得分:0)
我想实现类似的目的,并被重定向到该线程。我想要的是将组件(例如,Component1)呈现为默认设置。然后,基于Component1中的少量交互,我想用另一个组件(例如Component2)替换。
解决方案:配置到Component1的默认路由,使用Component1中的[routerLink]重定向到Component2。
在app.component.html中,仅包含<router-outlet></router-outlet>
,没有其他内容。
原因:HTML页面必须必须具有html,head和body标签才能呈现,该标签包含在index.html中。然后,您有一个<app-root>
的选择器,您可以在其中显示<router-outlet>
。