【发布时间】:2017-05-17 19:30:02
【问题描述】:
我正在 Angular 2 应用程序中构建一个表单。
Html 给了我提交事件。在 Angular 中,我可以使用(提交)事件绑定来监听这个事件。最重要的是,Angular 添加了 ngSubmit 事件,我可以使用 (ngSubmit) 来监听它。
我知道 submit 来自 html,而 ngSubmit 来自 Angular。我不明白为什么我需要听一个特殊的 ngSubmit 事件,而不是普通的提交事件。
我创建了一个plunker 来监听这两个事件,并且似乎都做同样的事情。
听(submit)和(ngSubmit)有什么区别?
@Component({
selector: 'my-app',
template: `
<form (submit)='onSubmit(form)' (ngSubmit)='onNgSubmit(form)' novalidate #form='ngForm'>
<input type='text' name='input' [(ngModel)]='input' required>
<input type='submit' value='Submit' required>
</form>
`,
})
export class App {
input : string;
onSubmit(form): void {
console.log(`submit: ${this.input}, valid: ${form.valid}`);
}
onNgSubmit(form): void {
console.log(`ng-submit: ${this.input}, valid: ${form.valid}`);
}
}
【问题讨论】:
-
当你打算使用 Angular 自带的验证器时,我认为 ngSubmit 是必需的
-
这听起来合乎逻辑。但是在上面的例子中,在 onSubmit 和 onNgSubmit 方法中,$form.valid 已经正确更新了。那么有什么区别呢?
标签: angular