Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 根据角度为5,6的管线路径隐藏元素_Angular_Typescript_Frontend - Fatal编程技术网

Angular 根据角度为5,6的管线路径隐藏元素

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 '

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

在Angular 5或Angular 6中,有没有办法根据url隐藏元素

我想知道实现这一目标的最佳经验


例如,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();
    }
  }