关于Angular教程中app-heroes CSS元素选择器的疑问
理解Angular组件选择器:app-heroes的来龙去脉
嘿,我来帮你把这个Angular组件选择器的问题掰扯清楚!
1. app-heroes选择器是哪里来的?
它不是自动从文件夹名生成的,而是你在Heroes组件的代码里手动定义的。打开你的src/app/heroes/heroes.component.ts文件,应该能看到类似这样的代码:
@Component({ selector: 'app-heroes', // 就是这里!这是你给组件指定的选择器名称 templateUrl: './heroes.component.html', styleUrls: ['./heroes.component.css'] }) export class HeroesComponent { // 组件逻辑... }
这个selector属性就是告诉Angular:“当模板里出现<app-heroes>这个HTML标签时,就把我这个组件渲染进去”。教程里用app-前缀是Angular的推荐规范——避免和原生HTML标签(比如<div>、<p>)重名,后面的heroes是和组件功能相关的名称,你完全可以改成别的,比如my-hero-team,只要前后保持一致就行。
2. 父组件模板里的<app-heroes>在哪里?
你说找不到这个HTML元素,大概率是没去看父组件的模板文件。在Tour of Heroes教程里,默认的父组件是AppComponent,对应的模板文件是src/app/app.component.html。打开它,你应该能看到一行:
<app-heroes></app-heroes>
这就是引用Heroes组件的地方!Angular会把Heroes组件的模板内容,替换到这个<app-heroes>标签所在的位置。
3. 再理一遍工作逻辑
- 你在Heroes组件的
@Component装饰器里声明了选择器app-heroes - 你在父组件(比如AppComponent)的模板里使用
<app-heroes>这个自定义HTML标签 - Angular识别到这个标签后,就会把Heroes组件的内容渲染到这个位置,实现组件的复用和嵌套
这样是不是就明白这句话的意思啦?
内容的提问来源于stack exchange,提问作者MarcL
相关产品推荐
相关产品推荐

