Angular 根据角度为5,6的管线路径隐藏元素
我现在正在管理一个角度项目,在试图改进系统时,我遇到了一件奇怪的事情。某些元素不应显示在某些URL上 在Angular 5或Angular 6中,有没有办法根据url隐藏元素 我想知道实现这一目标的最佳经验Angular 根据角度为5,6的管线路径隐藏元素,angular,typescript,frontend,Angular,Typescript,Frontend,我现在正在管理一个角度项目,在试图改进系统时,我遇到了一件奇怪的事情。某些元素不应显示在某些URL上 在Angular 5或Angular 6中,有没有办法根据url隐藏元素 我想知道实现这一目标的最佳经验 例如,domain.com/home、domain.com/package等。在angular中,我们通常创建的指令越来越少,因为组件占用了90%的空间。但这里是一个典型的情况,您需要创建一个: 1-在路由器中创建一个指令: import { ActivatedRoute } from '
例如,domain.com/home、domain.com/package等。在angular中,我们通常创建的指令越来越少,因为组件占用了90%的空间。但这里是一个典型的情况,您需要创建一个: 1-在路由器中创建一个指令:
import { ActivatedRoute } from '@angular/router';
@Input() url : string;
constructore(private router: Router){
router.events.subscribe( (event) => {
// I think you can see the route change here :)
});
}
从这里你可以知道你在哪条路线上
2-现在隐藏还是不隐藏
您还可以注入templateRef和containerRef来处理DOM
import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';
constructore(private route: Router,
private templateRef: TemplateRef<any>,
private viewContainer: ViewContainerRef){
}
4-您只需在要管理页面上元素的元素上添加此指令,例如window.location.path?@austinfrench,角度路由,例如,当路由为/home和/package等时,我想隐藏元素。
if (this.url // On a good URL show the content) {
this.viewContainer.createEmbeddedView(this.templateRef);
} else {
this.viewContainer.clear();
}
}