2016-12-12 72 views
1

我有认识的模板变量引用一个小问题,与NgForm使用时,这里是在angular2 DOC:角2模板引用变量

<form (ngSubmit)="onSubmit(theForm)" #theForm="ngForm"> 
    <button type="submit" [disabled]="!theForm.form.valid">Submit</button> 
</form> 

什么是theForm的价值?

如果Angular没有接管它,那将是HTMLFormElement。它实际上是 ngForm,它是对Angular内置NgForm指令 的引用,它包装了本机HTMLFormElement并赋予它额外的超级压力,例如跟踪用户输入有效性的能力。

我明白什么是表格值,但我没有从我们得到ngForm变量的地方得到,它是否是NgForm指令的属性?

回答

2

EXPORTAS - 名下该组件实例在 模板

的ngForm出口是角形式指令。

您可以将暴露您的指令作为局部变量的视图与exportAs键。

从源代码:

@Directive({ 
    selector: 'form:not([ngNoForm]):not([formGroup]),ngForm,[ngForm]', 
    exportAs: 'ngForm' 
    ... 
}) 

现在,您可以访问ngForm指令API在你的模板ngForm。

当你这样写:

#theForm="ngForm" 

它所做的是创建一个局部变量到您的模板,并指定它的价值形式指令。