角度8形式重置,其值无法正常工作

时间:2019-06-27 11:08:00

标签: angular

问题是: 我有编辑表单,该表单更新了模型user的某些属性 单击更新后,我使用表格重置 休息,但清理所有输入

并且我发送了带有重置的用户模型,但是它不起作用

模板HTML:

<form #editForm="ngForm" (ngSubmit)="updateUserInfo()" class="form">
    <input 
        type="text" 
        id="projectinput1" 
        class="form-control" 
        name="fname" [(ngModel)]="user.name" />
    <input 
        type="text" 
        id="projectinput2" 
        class="form-control" 
        style="direction: ltr !important;text-align: left;" 
        name="lname" 
        [(ngModel)]="user.phoneNumber" />
    <input 
        type="text" 
        id="companyName" 
        class="form-control" 
        name="company" 
        [(ngModel)]="user.city" />
    <textarea 
        id="projectinput8" 
        rows="5" 
        class="form-control" 
        name="comment" 
        [(ngModel)]="user.address">
    </textarea>
    <button 
        type="submit" 
        [disabled]="!editForm.dirty" 
        class="btn btn-success">
        <i 
            class="icon-note">
        </i> ذخیره
    </button>
</form>

组件:


export class ProfileComponent implements OnInit {
    @ViewChild('editForm', {
        static: false
    }) editForm: NgForm;
    user: User;
    constructor() {}
    ngOnInit() {
        this.loadUser();
    }
    loadUser() {
        this.route.data.subscribe(data => {
            this.user = data.user;
        });
    }
    updateUserInfo() {
        console.log(this.user);
        this.editForm.reset(this.user);
    }
}

3 个答案:

答案 0 :(得分:2)

尝试以下this.editForm.reset()

updateUserInfo() {
  console.log(this.user);
  this.editForm.reset();
}

答案 1 :(得分:0)

那对我不起作用 但是使用这个

this.editForm.form.markAsPristine();

我想要的工作

答案 2 :(得分:0)

  

具有表单

<form #editForm ="ngForm">
    ...
    <button type="button" class="btn btn-default" (click)="newHero(); editForm.reset()">New Hero</button>
</form>
  

带有.ts

this.editForm.reset();