您的输入需要绑定。你可以用反应形式来做:
应用程序ts
import {FormControl} from "@angular/forms";
...
usernameCtrl = new FormControl();
onSubmit()
{
if(this.usernameCtrl.valid)
{
// do something
}
}
应用程序.html
<input ... [formControl]="usernameCtrl" />
编辑
NgModel&NgControl的区别:
Difference between using ng-model and ng-control in angular2?
他们说:
控件负责获取有关窗体或特定输入(有效、原始、已触摸等)状态的提示。它通常用于显示验证错误(如果有)。
我认为比FormControl更好的解决方案是FormGroup(如果您有多个输入):
应用程序ts
import {FormBuilder, FormGroup} from "@angular/forms";
...
//decorator
export class SomeClass implements OnInit
{
public reactiveForm = new FormGroup();
constructor(private fb: FormBuilder){}
public ngOnInit()
{
this.reactiveForm = this.fb.group({username: [""]});
}
public onSubmit()
{
if(this.reactiveForm.valid)
{
const raw = this.reactiveForm.getRawValue(); //output -> { username: "blabla"}
// do something with raw
}
}
}
应用程序.html
<form [formGroup]="reactiveForm">
<input ... formControlName="usernameCtrl" name="usernameCtrl"/>
<button [disabled]="!reactiveForm.valid">Submit</button>
</form>