Angular 16 представил новый способ простого анализа информации о маршруте, и я хотел использовать его, поскольку он позволяет избежать шаблонного кода. Однако я просто не могу заставить его работать, и я не уверен, что я делаю неправильно.
Как описано в их документации я добавил новую опцию в инициализацию роутера:
@NgModule({
imports: [RouterModule.forRoot(routes, { bindToComponentInputs: true })],
exports: [RouterModule],
})
export class AppRoutingModule {}
После этого я добавил привязку @Input() к моему файлу app.component.ts:
@Input() settings_id? = '';
public ngOnInit(): void {
if (this.settings_id !== '') {
console.info(this.settings_id); <-- this doesn't fire since string remains "empty"
}
}
Согласно всем (ограниченным) ресурсам, которые я могу найти в Интернете, этого уже должно быть достаточно. Я звоню по адресу http://localhost:4200?settings_id=2a39962d-c3c5-4ade-8a0f-1b7f97279a58
@ertucode Я не пытаюсь получить параметр пути. В документах прямо указано, что параметры запроса также поддерживаются.





Эта привязка ввода компонента работает только на маршрутах маршрутизатора:
providers: [provideRouter([
{ component: ChildComponent, path: 'test'} // will work on ChildComponent
], withComponentInputBinding())],
Но не на корневом компоненте.
О, хорошо, я думаю, имеет смысл, что только маршруты, непосредственно обрабатываемые маршрутизатором, имеют эту функциональность, лол. Теперь он работает так, как ожидалось.
Вероятно, вам нужен маршрут с :settings_id, а не с компонентом приложения. Например, admin/:settings_id