要在Angular 7中实现在同一页面中显示组件而不是导航到新页面,可以使用路由器的子路由配置。以下是一个示例解决方案:
首先,确保已安装了@angular/router包。可以使用以下命令进行安装:
npm install @angular/router --save
然后,假设我们有两个组件:ParentComponent和ChildComponent。在ParentComponent中,我们将显示一个导航菜单,并在ChildComponent中显示内容。
在app.module.ts文件中,需要导入RouterModule并配置路由:
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { ParentComponent } from './parent.component';
import { ChildComponent } from './child.component';
const routes: Routes = [
{ path: '', component: ParentComponent, pathMatch: 'full' },
{ path: 'child', component: ChildComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在ParentComponent的模板中,添加一个导航链接到ChildComponent:
Parent Component
在ChildComponent的模板中,添加要显示的内容:
Child Component
This is the content of the child component.
在app.component.html中,将ParentComponent添加为根组件的内容:
最后,在main.ts中启动应用程序:
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
现在,当应用程序启动时,将显示ParentComponent,并在导航菜单中包含一个链接到ChildComponent的按钮。点击该按钮将在同一页面中显示ChildComponent的内容,而不是导航到新页面。