#angular #angular2-routing
#angular #angular2-маршрутизация
Вопрос:
Как я могу использовать один компонент как для редактирования, так и для создания?
Форма будет одинаковой в соотношении 1:1.
Мой компонент редактирования подписывается на изменения параметра URL id и соответствующим образом извлекает пользовательский элемент:
user: User;
constructor(private httpHandler: HttpHandlerService,
private route: ActivatedRoute) {
}
ngOnInit(): void {
this.route.params.subscribe(params => {
this.httpHandler.getUser(userId)
.subscribe(user => this.user = user);
});
}
Это не должно происходить для создания (нового пользователя). Я хотел бы использовать пустой пользовательский объект и ни на что не подписываться.
Должен ли я просто проверить параметры маршрута? Или есть лучший подход?
Ответ №1:
Решается путем проверки параметра:id, чтобы определить, нахожусь ли я в режиме «создать» или «обновить» для своего компонента.
user: User;
idParam: string;
ngOnInit(): void {
this.route.params.subscribe(params => {
this.idParam= params[`id`];
if (!!this.idParam) {
this.httpHandler.getUser(idParam)
.subscribe(user => this.user = user);
} else {
this.user = {
id: '',
name: ''
};
}
});
}