Angular如何识别模板元素有效性:其判定逻辑的知识来源是什么
Angular模板元素合法性判定逻辑说明
- 未在任何位置完成注册的随机命名标签(比如示例中的
<foo>)被标记为无效元素,完全符合框架的预期行为 - 像
<p>这类原生HTML标签能被判定为有效,是因为其本身属于W3C规范定义的原生HTML元素
相关疑问解答
Angular是否内置了原生HTML元素清单?
是的,Angular 在模板编译阶段内置了对齐W3C HTML规范的原生元素判定清单。所有清单内的原生HTML标签,不需要开发者在项目中做额外的组件注册、模块声明,就可以在模板中正常使用,不会被判定为未知无效元素。
Angular判定元素合法性的知识来源是什么?
框架的元素合法性判定逻辑来自两个独立的校验源,在编译阶段会将两个源的合法标签名做合并统一校验:
- 框架内置的原生HTML元素枚举库:这部分是框架在构建编译环节硬编码的基础判定规则,覆盖所有标准HTML规范中定义的原生标签
- 项目上下文的自定义注册信息:包括项目内通过
@Component装饰器声明、在对应模块declarations数组中注册的自定义组件,以及符合Web Components规范的自定义元素注册信息,这部分标签名会被追加到框架的合法元素清单中参与校验
内容的提问来源于stack exchange,提问作者krzyhub
相关产品推荐
相关产品推荐

