mah*_*eju 5 javascript node.js typescript ecmascript-6 angular
在角度 6 中,让我们有三个分量 x,y,z 。我现在在 x 组件。但是当我转到组件 y 并返回到 x 时,DOM 中仍然存在之前的 x 组件。但我想删除 x 的前一个实例。这意味着我一次只想要一个组件在 DOM 中的一个实例。如何做到这一点?
我的路由器配置部分:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { OnlineideComponent} from './onlineide/onlineide.component';
import {HomepageComponent} from './homepage/homepage.component';
const routes: Routes = [
{path: 'ide',component: OnlineideComponent},
{path: '', component: HomepageComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)
您可以使用 nativeElement.remove() 方法物理删除元素。所以你的代码应该是:
首先,确保将其放入 ngOndestroy 方法中
export class YourComponent {
constructor(private elementRef: ElementRef) {
}
ngOndestroy() {
this.elementRef.nativeElement.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
由于您使用路由器,您需要像这样更改路由器顺序
{path: '', component: HomepageComponent }
{path: 'ide',component: OnlineideComponent},
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用 HostListener,它会在卸载该页面时删除/清除该组件。
@HostListener('unloaded')
ngOnDestroy() {
console.log('Cleared');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11230 次 |
| 最近记录: |