表单提交错误 - Angular 2 Javascript

时间:2016-03-10 07:32:55

标签: angular angular2-routing angular2-template angular2-directives angular2-forms

enter image description here

任何人都可以查看此图片链接并解释为什么在表单提交后出现此错误。我已使用(submit)提交表单,并使用this.router.navigate(['/Todos']);导航到下一页。这是我的代码,

的login.html

<form #simpleForm="ngForm" (submit)="onSubmit(simpleForm, user)" novalidate>

    <div>
        <input type="text" placeholder="Name" [(ngModel)]="user.name" ngControl="name" #name="ngForm" required />
    </div>

    <button type="submit">Login</button>

</form>

login.js

(function (app) {

    app.LoginComponent = ng.core
            .Component({
                selector: 'login',
                templateUrl: 'login.html',
            })
            .Class({
                constructor: [ng.router.Router, function (router) {
                    this.router = router;
                    this.user = {};
                }],
                onSubmit: function (form, user) {
                    this.router.navigate(['/Todos']);
                },
            });

    ng.router.CanActivate(function (next, prev) {
        return true; //return false to cancel navigation
    })(app.LoginComponent);

})(window.app || (window.app = {}));

1 个答案:

答案 0 :(得分:1)

这是一个已知问题https://github.com/angular/angular/issues/6786

使用setTimeout()解决问题

onSubmit: function (form, user) {
  setTimeout(()=>{
    this.router.navigate(['/Todos']);
  }, 10);
},