app.component.html
这是我们的默认组件,其中添加了一个菜单,但我不希望将其包含在我的其他组件中。
我该怎么做?
问题是当我加载newsection.component.html
时,它显示在app.component.html
顶部,如下所示
请指导我如何限制它,以便它不会加载到editsection.component.html
之上
答案 0 :(得分:4)
你可以结合Dhyey和Hamed Baatour的回答。
首先,为您的菜单创建一个单独的组件(例如app.component.ts
)并将所有代码放在那里。
然后修改您的<menu-component *ngIf="showMenu"></menu-component>
<router-outlet></router-outlet>
,使其如下所示:
showMenu
重要提示:现在,您必须在{{1>}中设置{{1>} , <{1}} }}
您可以通过检查请求的网址来执行此操作。只需在app.component.ts
中注入路由器,就像这样:
newsection.component.ts
如果请求 / newsection 的路线,则不应显示菜单。
答案 1 :(得分:2)
Assalamualaikum,
首先,您应该了解角度的本质,因为它是单页面应用程序,这意味着加载了单个HTML页面,您可以使用路由器为其注入其他代码。但是,作为一种解决方法,您可以使用*ngIf
指令来显示和隐藏您的应用组件,具体取决于用户在应用中导航的位置,如下所示:
if (this.router.url === '/login') {
this.showComponent = false
}
并在模板中执行以下操作:
<app-root *ngIf="showComponent" ><app-root>
<router-outlet></router-outlet>
我希望这可以帮助你:)
app-root
是您创建的新组件的选择器,用于将应用组件HTML和逻辑移动到其中。在app.component.html
模板中,只需添加我在app.component.ts
中提供的HTML注入路由器并创建名为showComponent
的变量,然后在ngOnInit
或构造函数中添加if上面的语句显示或隐藏app-root
组件,具体取决于提供的路由器条件。
答案 2 :(得分:1)
如果您只想在少数组件中显示菜单,请为菜单创建一个新组件,从app.component.html
中删除html for menu,并在您想要的文件中包含新构建的menu
组件下面:
<div id="some-other-component">
<menu-comp></menu-comp>
// other html below
</div>
答案 3 :(得分:0)
我使用的一个小例子。变量&#39;标题&#39;接收组件位置/路径。然后在组件I中检查:
在 app.component.ts
中isMaps(path) {
var title = this.location.prepareExternalUrl(this.location.path());
title = title.slice(1);
if (path == title) {
return false;
}
else {
return true;
}
}
app.component.html 中的
如果主要名称/路径为地图,则方法将返回&#39; false &#39;然后不要在 map.component.ts <router-outlet></router-outlet>
<div *ngIf="isMaps('maps')">
<app-footer></app-footer>
</div>