раз при смене active/archive инициализируется ChatsSidebarComponent, возможно ли изменить это поведение? Что бы он инициализировался только один раз
У меня была похожая ситуация, только с "component" и "component/:id", с помощью Location.go(url) из @angular/common изменил url без переинициализации компонента. Но не уверен, что это хорошее решение, пока проблем не увидел
попробуйте при навигации использовать опции https://angular.io/api/router/NavigationExtras
не, это очевидно плохое решение
а точно там есть опция для этого? я чет не вижу, мне еще кидали такие ссылки https://angular.io/api/router/UrlMatcher https://angular.io/api/router/BaseRouteReuseStrategy вроде по второй что-то похожее на то, что нужно для этого кейса "that is, the existing component is reused"
Да, тебе нужно использовать routeReuseStrategy https://blog.bitsrc.io/angular-route-reuse-strategy-c7939ebbf797?gi=995b8091680a
Я кидал кому-то такую ссылку. Но имхо дофига гемера на ровном месте. Это вам нужно просто анимацию скипнуть?
мне нужно было да, ну и хуки с конструктором не вызывать, т.е. использовать текущее состояние компонента
Оно вроди юзается для всего роутинга. Нельзя повесить на конкретный (типа path: ..., reuse: ...)
A чем хуки мешают?
Кинуть в компонент инпут useAnimation false
Стратегия вешается на весь роутер, но можно определить при переходе на какие роуты будет происходить магия
Ну это уже внутри стратегии. А тут бы OCP не помешал... Ну нафиг. Много гемора
проще убрать это из роутера вовсе
Я об этом же. Тоесть чтобы это делать глобально в стратегии и не плодить if/switch, то нужно какой-то OCP внедрять. А в данной задаче выглядит как оверхед
Обсуждают сегодня