我对理解模板变量引用有一点问题,当与NgForm一起使用时,这里是angular2 doc中的内容:
<form (ngSubmit)="onSubmit(theForm)" #theForm="ngForm">
<button type="submit" [disabled]="!theForm.form.valid">Submit</button>
</form>
theForm的价值是什么?
如果Angular没有接管它,那将是HTMLFormElement。它的 实际上是ngForm,是对Angular内置NgForm指令的引用 包装本机HTMLFormElement并赋予它额外的 超级大国,例如跟踪用户输入有效性的能力。
我明白了什么是theForm值,但是我不知道从哪里得到ngForm
变量,它是否是NgForm指令的属性?
答案 0 :(得分:2)
exportAs - 在a中导出组件实例的名称 模板
ngForm是Angular表单指令。
您可以使用 exportAs 键将您的指令公开作为局部变量公开
。来自源代码:
@Directive({
selector: 'form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]',
exportAs: 'ngForm'
...
})
现在您可以将模板中的ngForm指令API作为ngForm访问。
当你这样写:
#theForm="ngForm"
它的作用是为模板创建一个局部变量,并将其赋值给form指令。