移除角度6中的组件标签

Ste*_*Luv 7 angular

我正在尝试从html中删除被调用的组件标签,以防止外部库中的CSS损坏(例如,从清除项目中调用sidenav):

something.component.ts

import {Component, OnInit, Input} from '@angular/core';
@Component({
  selector: 'app-something',
  templateUrl: './something.component.html',
  styleUrls: ['./something.component.css']
})
export class SomethingComponent implements OnInit {
  @Input() config: {} = {};
  ....
}
Run Code Online (Sandbox Code Playgroud)

something.component.html

<div>
    Hello World
</div>
Run Code Online (Sandbox Code Playgroud)

another.component.html

 <div>
    <app-something [config]="somethingConfig"></app-something>
 </div>
Run Code Online (Sandbox Code Playgroud)

然后输出:

 <div>
    <app-something>
      <div>
          Hello World
      </div>
    </app-something>
</div>
Run Code Online (Sandbox Code Playgroud)

而且我要:

<div>
  <div>
     Hello World
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

是的,我知道,stackoverflow中有很多关于它的答案,基本上我可以在2个项目中恢复所有答案:

  • 将括号添加到选择器selector: '[app-something]'):不起作用,它会触发错误

    组件SomethingComponent的选择器应用作元素(https://angular.io/styleguide#style-05-03)(组件选择器)。

  • 使用指令:指令不能具有templateUrl参数。

enf*_*cer 6

使用属性选择器似乎是解决此问题的最佳方法。您得到的错误不是由于尖角不支持方括号来实现此目的,您的应用程序中肯定有其他问题。我建议研究有关如何将属性选择器用于组件的示例。

还记得换

<div> 
    <div>Hello World</div>
</div>
Run Code Online (Sandbox Code Playgroud)

<div> 
    <div app-something></div> 
</div> 
Run Code Online (Sandbox Code Playgroud)

使属性选择器生效。

  • 如果我想用单个组件渲染 3 个 TD 元素怎么办?_属性选择器_在这里不起作用。 (2认同)