【发布时间】:2016-07-19 13:49:56
【问题描述】:
我在 Angular 2 中实现了一个自定义指令,用于表单验证的指令,在许多地方我看到在指令定义中选择器属性与多个 id 相关联 - 例如:
@Directive({
selector: '[my-custom-validator][ngModel]'
})
多个“[...]”(括号)选择是什么意思?
【问题讨论】:
标签: angular selector directive angular2-forms
我在 Angular 2 中实现了一个自定义指令,用于表单验证的指令,在许多地方我看到在指令定义中选择器属性与多个 id 相关联 - 例如:
@Directive({
selector: '[my-custom-validator][ngModel]'
})
多个“[...]”(括号)选择是什么意思?
【问题讨论】:
标签: angular selector directive angular2-forms
与 CSS 中一样,选择器 [attr] 匹配具有名为 attr 的属性的元素。当多个属性选择器链接在一起时,所有属性必须存在于元素上。
注意:与 CSS 不同,Angular 在执行匹配时会忽略目标属性上的任何 [...] 或 [(...)] 绑定括号。
因此,选择器[my-custom-validate][ngModel] 匹配同时具有my‑custom‑validate 属性和ngModel 属性的元素(包括[ngModel] 和[(ngModel)])。例如选择器匹配
<input type="text" name="username" my-custom-validate [(ngModel)]="model.username">
但不是
<input type="text" name="username" my-custom-validate>
【讨论】: