我并不真正理解这三种在HTML中声明ID的方法之间的区别:
[id]=“'example'”
id=“example”
#示例
前两者似乎一模一样,这对吗? 我可以在我的example.component.css
文件中设置这些样式。
第三个是特别的。 我明白我可以在当前html视图中的任何地方使用它,但是我不能用example.component.CSS
应用CSS样式,这对吗?
我应该用哪一个角呢? 1/2和3的组合?
我还注意到,如果我在不同的组件中使用相同的ID,我会有重复的ID,这真的很糟糕,所以即使我使用角度不同的组件,我也必须非常小心我如何命名ID,这是正确的吗?
版本2是id的默认html语法
版本1是角度方式,如果id是变量,例如[id]=“myid”
版本3是angular将html元素导出/引用到angular的方法。 这不是身份证。
id是一个HTML元素(不是角的),因此您必须在构建之后在HTML中看到id是唯一的。
是的,前两个有一个相同的最终结果。 第二个是字符串,而第一个是javascript表达式,并由Angular计算。 这意味着您可以使用诸如[id]=“'example-'。foo”
这样的组件属性,如果您的组件中有属性foo=2;
,则输出id=“example-2”
。
第三个实际上与HTML中的ID属性没有任何关系,但我理解为什么它看起来可能是这样的。 它实际上是一个模板引用变量,它允许您从模板中的任何其他地方,甚至从组件代码访问该元素。
您是对的,html规范要求ID是唯一的,浏览器允许您使用重复的ID,但是应该不惜一切代价避免重复的ID。
1.[id]-这是属性绑定。 您可以从ts绑定数据(单向)。 就像这个[id]=“example”
id-这是HTML中id的默认语法。
#example-这是模板引用变量。 不是身份证。
参考本文获取更多信息-https://angular.io/guide/template-reference-variables