Angular 通用指令是否隐式应用于元素?
我是初学者,正在学习。下面是一个简单的模板:Angular 通用指令是否隐式应用于元素?,angular,Angular,我是初学者,正在学习。下面是一个简单的模板: <form class="m-2" novalidate (ngSubmit)="submitForm()"> ... 然后我可以在模板中使用我的自定义事件(mySubmit)=“xxx”。 由于元素中没有使用显式指令,我猜表单元素上隐含了一个通用指令,该指令定义了ngSubmit,我的理解正确吗?某种程度上,如果通用指令是指带有选择器的指令,它不限于属性 现在,您应该知道,指令装饰器中的选择器
<form class="m-2" novalidate (ngSubmit)="submitForm()">
...
然后我可以在模板中使用我的自定义事件(mySubmit)=“xxx”
。
由于元素中没有使用显式指令,我猜表单元素上隐含了一个通用指令,该指令定义了
ngSubmit
,我的理解正确吗?某种程度上,如果通用指令是指带有选择器的指令,它不限于属性
现在,您应该知道,指令装饰器中的选择器只是一个CSS选择器,因此您可以(通过指令)在各种事情上应用特定行为-例如,以下指令:
@Directive({
selector: 'button'
})
export class StrongClickDirective {
}
将应用于应用程序中button类型的所有元素(因此您提到的“全局”行为)-每个按钮都将获得它自己的指令实例,创建这样的指令是否是一个好的实践本身就是一个争论
现在对于
ngSubmit
-如果您查看的源代码,您可以看到选择器(除了一些例外)针对所有form
元素:form:not([ngNoForm]):not([formGroup]),ng form,[ngForm]在文档中查看您可以使用的选择器类型:
@Directive({
selector: 'button'
})
export class StrongClickDirective {
}