无法获取这样的表单元素,因为它不是指令的一部分
看法
. 相反,你应该直接
注入
它。
import { Directive, Input, ElementRef, OnInit } from '@angular/core';
import { NgForm } from '@angular/forms';
@Directive({
selector: '[preventFormChangesLoss]'
})
export class PreventFormChangesLoss implements OnInit {
private origin: string = '';
constructor(private ngForm: NgForm) {
console.log(this.ngForm);
}
ngOnInit() {
console.log(this.ngForm)
}
}
这将允许您操作和订阅特定角度增强的事件
<form>
在指令中,所以您只能这样使用它:
<form preventFormChangesLoss>
...
</form>
不是按照你的设计,而是一个提示:既然你说你想这样做
全部的
您的窗体,将选择器更改为
form:not([allowFormChangesLoss])
. 然后您只需要将模块导入到共享模块中,并且
全部的
已经创建的表单将具有此功能。如果要在特定表单上禁用它,可以使用
<form allowFormChangesLoss>
从而逆转“默认”行为。