Angular 8: сброс значений ввода формы на другое значение - PullRequest
0 голосов
/ 28 января 2020

Можно ли сбросить входные значения формы и впоследствии установить другое значение из службы? Я хочу сохранить старое значение в 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!';
    }
}

1 Ответ

1 голос
/ 28 января 2020

Если в теге формы используется ngModel, либо должен быть задан атрибут имени, либо элемент управления формы должен быть определен как 'standalone' в ngModelOptions.

<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!';
    }
}
...