如何在不重新加载数据的情况下更改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为目标。如何更改路由的动态段默认值?
1条答案
按热度按时间fxnxkyjh1#
您需要将动态段传递给模板中的LinkTo组件。当这些属性更改时,链接将更新。请参阅以下指南以了解更多信息:https://guides.emberjs.com/release/templates/links/#toc_example-for-multiple-segments