У меня есть форма, в которой появляется фотография пользователя. Каждый раз, когда я меняю пароль пользователя, фотография исчезает из формы. Я уже пробовал брать образ формы но это не решило. Смена пароля осуществляется через onSubmit.
HTML:
<form (ngSubmit) = "onSubmit($event)">
<div class = "modal-header">
<h5 class = "modal-title" id = "exampleModalLabel">Configuração do Usuário: <b> {{userId?.name}} </b></h5>
<button type = "button" class = "close" data-dismiss = "modal" aria-label = "Close">
<span aria-hidden = "true">×</span>
</button>
</div>
<div class = "modal-body">
<div class = "example-container" style = "width: 100%; margin: auto; margin-top: 2%">
<img class = "img-modal" style = "border-radius: 50%; width: 60px; height: 60px;" src = {{userId?.photo}}>
<div class = "example-container password-width">
<mat-form-field>
<input matInput placeholder = "Alterar a Senha" [type] = "hide ? 'text' : 'password'" [(ngModel)] = "senha" name = "senha">
<mat-icon matSuffix (click) = "hide = !hide">{{hide ? 'visibility' : 'visibility_off'}}</mat-icon>
</mat-form-field>
</div>
<app-panel-config-user></app-panel-config-user>
</div>
</div>
<div class = "modal-footerButtonConfig">
<button type = "button" class = "btn btn-danger btn-sm buttonConfig" *ngIf = "userId?.status == 1">Desativar
Usuário</button>
<button type = "button" class = "btn btn-success btn-sm buttonConfig" *ngIf = "userId?.status == 0">Ativar
Usuário</button>
<button type = "button" class = "btn btn-sm buttonConfig buttonColor" style = "background-color: #6239BD; color: white" *ngIf = "userId?.is_admin == 0">Tornar Administrador</button>
<button type = "button" class = "btn btn-sm buttonConfig buttonColor" style = "background-color: #6239BD; color: white" *ngIf = "userId?.is_admin == 1">Remover Administrador</button>
</div>
<div class = "modal-footer">
<button type = "button" class = "btn btn-secondary btn-sm" data-dismiss = "modal">Fechar</button>
<button type = "submit" class = "btn btn-sm buttonColor" style = "background-color: #6239BD; color: white">Salvar</button>
</div>
</form>
Код смены пароля:
onSubmit(
userPass: UserPass,
messageSucess: string = 'Senha alterada com Sucesso!',
messageError: string = 'Falha ao alterar a senha.',
action: string = '') {
userPass.password = this.senha;
return this.userService.putPass(this.idUser, userPass).subscribe(response => {
if (!response) {
console.info(Error);
} else {
this.userId = response;
if (this.userId['success'] === true) {
this.senha = '';
this.snackBar.open(messageSucess, action, {
duration: 4000,
panelClass: ['success-class']
});
} else {
this.snackBar.open(messageError, action, {
duration: 4000,
panelClass: ['error-class']
});
}
}
});
}
он возвращает: {успех: правда}
Ваша проблема в линии
this.userId = response;
Вы устанавливаете идентификатор пользователя для ответа ({success: true}
), но ответ не является идентификатором пользователя!
Удалите эту строку, и она снова должна работать.
Что вы получите, если
console.info(response)
в начале подписки?