Angular - 使用 ID 的组件选择器

Ser*_*gey 3 angular

我想对组件选择器使用元素 ID,但它不起作用。

这在 Angular 中是不允许的吗?如果是这样为什么不呢?

(因此匹配的选择器.btnAction,并且按钮被插入到组件 1 的模板中,但#btnAction没有)

我不确定这是否必要,但通过以下代码,我确认其他CSS 选择器可以工作(例如类和属性),但 ID 不能。

组件1

@Component({
    selector: 'myelement',
    template: `<div id="btnAction" class="btnAction"></div>`,
    directives: [ActionBtn]
})
Run Code Online (Sandbox Code Playgroud)

组件2

@Component({
    selector: '#btnAction',
    template: `<button>{{btnTitle}}</button>`
})
Run Code Online (Sandbox Code Playgroud)

小智 6

是的!!!

Angular 2+ 也支持 ID 选择器。我们可以使用元素、类或 id。下面是可以工作的代码。

  1. 使用 id 选择器

@Component({ selector: '[id=idname]', templateUrl: 'template path', styleUrls: ['css path'] })

  1. 使用类选择器

@Component({ selector: '.classname', //or '[class=classname]' templateUrl: 'template path', styleUrls: ['css path'] })

  1. 使用元素选择器

@Component({ selector: 'elementname' templateUrl: 'template path', styleUrls: ['css path'] })

  • 我认为您使用的实际上是一个属性选择器,但它有效。 (2认同)