Как изменить URL-адрес и компоненты LinkTo без перезагрузки данных?
Нарисуйте приложение, в котором пользователь может изменить название своего проекта. Текущий URL-адрес содержит название проекта, поэтому его необходимо обновить. Ничего, кроме URL-адреса и ссылок, не должно быть изменено (без перезагрузки данных)
Рассмотрим этот основной маршрут:
this.route('routeName', { path: '/:project_name/:param2/:param3' }, function () {
...many sub routes
});
Метод replaceURL позволяет изменить URL:
this.router.location.replaceURL(urlWithNewProjectName)
Пример использования LinkTo (модель не указана, используются значения по умолчанию):
{{#LinkTo 'routeName'}}link{{/LinkTo}}
Например, следующее не работает:
// this code in the router has no effect on LinkTo in templates.
const params = this.paramsFor(this.routeName);
params.project_name = "newName";
Компоненты LinkTo продолжают ориентироваться на старые URL-адреса. Как изменить значение динамического сегмента по умолчанию для маршрута?
<LinkTo />
? Мой первый инстинкт здесь заключается в том, что вы передаетеmodel
этому помощнику, который содержит имя старого проекта. - person jrjohnson   schedule 11.10.2019app/router.js
, где указана эта ссылка. Если вы не передаете какой-либо динамический контент вLinkTo
, то я не уверен, где имя проекта попадает в URL-адрес. - person jrjohnson   schedule 15.10.2019