#javascript #angular #typescript
#javascript #angular #typescript
Вопрос:
Я добавляю метод Add в свой CRUD Api.
Я должен использовать ту же форму и тот же метод обновления. Когда я нажимаю на обновить, появляется URL-адрес detail/:id
, вместо этого, когда я нажимаю на добавить, появляется ссылка detail/-1
.
В моем методе я должен контролировать, равен ли идентификатор -1
id, установить новый идентификатор, суммируя users.lenght 1
остальное, что я передаю в форму id, и другие параметры для обновления.
getUser(): void {
const id = this.route.snapshot.paramMap.get('id');
this.userService.getUser(id)
.subscribe(user => this.user = user);
if (id === -1) {
id = this.users.length 1;
this.userService.getUser(id)
.subscribe(user => this.user = user);
}
}
Я не могу присвоить новый id
старому идентификатору, потому что это константа.
Что я должен делать?
Это моя форма в html:
<div *ngIf="user">
<h2>{{user.firstName}} Details</h2>
<div class="form-group">
<label class="col-md-4 control-label" for="id">Id</label>
<div class="col-md-4">
<input id="id" name="id" type="text" placeholder="{{user.id}}" class="form-control input-md" required="" readonly>
</div>
</div>
/*rest of datas*/
Ответ №1:
Если вам нужно изменить активный маршрут, вы должны запустить навигацию.
Если вам просто нужен идентификатор в компоненте, вы можете использовать let
вместо const
или присвоить его другой переменной.
Ответ №2:
просто объявите переменную с let
ключевым словом. Хотя я не уверен, что это то, о чем вы спрашиваете.
let id = this.route.snapshot.paramMap.get('id');
Ответ №3:
При использовании const
вы не можете повторно определить переменную, вы должны использовать let
let id = this.route.snapshot.paramMap.get('id');
Также при использовании const
рекомендуется использовать верхний регистр