根据Angular 5,6中的路径隐藏元素

时间:2018-09-24 20:11:48

标签: angular typescript frontend

我现在正在管理Angular项目,在尝试改进系统时遇到了一件奇怪的事情。某些元素不应显示在某些URL上。

是否可以根据Angular 5或6中的URL隐藏元素?

我想了解实现这一目标的最佳体验。

例如,domain.com / 主页,domain.com / 软件包等。

1 个答案:

答案 0 :(得分:2)

在角度上,我们通常会创建越来越少的方向性指令,因为零件支脚占外壳的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){
 }

3-完成:

    if (this.url // On a good URL show the content) {
      this.viewContainer.createEmbeddedView(this.templateRef);
    } else {
      this.viewContainer.clear();
    }
  }

4-您只需在要管理的元素上添加此指令