Angular 8:将表单输入值重置为另一个值

Angular 8: Reset form inputs values to another value

是否可以重置表单输入值并随后从服务中设置另一个值? 我想在 saveService 中保存旧值,重置 service 并将服务的 name 属性设置为 Hello World!

所以在我的 saveService 中我正确地拥有了旧值,但是我表单中的输入仍然是空的。 我也尝试过不重置表格但没有。

这是我的代码:

.html

<form id="formExample">
    <input type="text" id="name" [(ngModel)]="service.name" #name>
</form> 
<button (click)="save()">save</button> 
<button (click)="reset()">reset</button>

.ts

export class Hero {
    constructor(public service: Service, public saveService: SaveService){}
    save(){
        this.saveService.name = this.service.name
    }
    reset(){
        this.service = new Service();
        let form = document.getElementsById('formExample');

        form.reset();

        this.service.name = 'Hello World!';
    }
}

如果在表单标签中使用 ngModel,则必须设置名称属性或表单 控件必须在 ngModelOptions.

中定义为 'standalone'
<form id="formExample" #myForm>
    <input [ngModelOptions]="{standalone: true}" type="text" id="name" [(ngModel)]="service.name" #name>
</form> 
<button (click)="save()">save</button> 
<button (click)="reset(myForm)">reset</button>

export class Hero {
    constructor(public service: Service, public saveService: SaveService){}
    save(){
        this.saveService.name = this.service.name
    }
    reset(form){
        this.service = new Service();

        form.reset();

        this.service.name = 'Hello World!';
    }
}