Я мигрирую приложение из AngularJs в Angular 7. В старом ui-маршрутизаторе мне удалось обновить местоположение без перезагрузки состояния с помощью приведенного ниже кода.
this.syncLocation = function (paramObj) {
var params = _.clone($state.params);
params = _.merge(params, paramObj);
$state.transitionTo($state.current.name, params, {
location: true,
notify: false
});
};
Однако с новым Angular & UI-Роутер Я не могу это сделать.Не уверен, что это связано со стратегией обнаружения изменений или изменениями самого UI-Router.
syncLocation(paramObj) {
console.log("syncLocation", paramObj);
let params = _.clone(this.stateService.params);
params = _.merge(params, paramObj);
this.stateService.go(this.stateService.current.name, params, {
reload: false
});
}
Я создал plunker , чтобы воспроизвести проблему.Проблема описана в компоненте colors.component.ts
ссылка .В этом сланце я не хочу перезагружать страницу, даже если я установил / снял флажок.
Идея состоит в том, что у меня сложная страница, на которой я не могу позволить себе потерять содержимое при перезагрузке страницы, но все же могу обновить местоположение.Это упрощенная страница с проблемой.
Любая помощь приветствуется.