角度2模板参考变量

时间:2016-12-12 14:45:49

标签: angular

我对理解模板变量引用有一点问题,当与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指令的属性?

1 个答案:

答案 0 :(得分:2)

  

exportAs - 在a中导出组件实例的名称   模板

ngForm是Angular表单指令。

您可以使用 exportAs 键将您的指令公开作为局部变量公开

来自源代码:

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

现在您可以将模板中的ngForm指令API作为ngForm访问。

当你这样写:

#theForm="ngForm"

它的作用是为模板创建一个局部变量,并将其赋值给form指令。