提问人:Clare Barrington 提问时间:12/8/2015 最后编辑:Clare Barrington 更新时间:10/12/2016 访问量:1059
Aurelia 中的动态路由 - 更改标题
Dynamic Routing in Aurelia - Alter Title
问:
{
route: 'content/:id',
name: 'Details',
title: 'Details',
viewPorts: { main: { moduleId: './admin/content/details' }, aside: { moduleId: './admin/content/aside' } },
settings: { menu:menuSection.content, access: { controller: 'content', action: 'get' } }
},
{
route: 'content/:id',
name: 'Add',
viewPorts: { main: { moduleId: './admin/content/details' }, aside: { moduleId: './admin/content/aside' } },
settings: { menu:menuSection.content, access: { controller: 'content', action: 'get' } }
title: 'Add',
href: 'content/0',
nav: true
}
import {Router} from 'aurelia-router';
activate(){
if (this.id === 0) {
this.router.title = "Add";
} else {
this.router.title = "Edit";
}
}
我正在尝试更改标题,因为它当前对新内容和更新内容都说“添加”。我也尝试过 routeConfig(它抛出了一个错误:未处理的承诺拒绝 TypeError:无法读取未定义的属性“navModel”),只是想知道我是否接近找到正确的代码?我需要做某种推送this.router.push吗?
我相信我可能需要对 UpdateTitle 做一些事情:
class UpdateTitle {
run(routingContext, next, routeConfig) {
var instr = routingContext.nextInstructions.find(i => i.params.id !== undefined && i.params.id !== 0 && i.params.id !== '');
if(instr !== undefined) {
Unsure what to do here?//routeConfig.navModel.title("TEST");
debugger;
}
return next();
}
}
答:
1赞
Mikhail Shilkov
12/9/2015
#1
如果要从激活功能更改标题,请尝试
activate(params, routeConfig) {
routeConfig.navModel.title = 'Edit';
}
评论
0赞
Clare Barrington
12/9/2015
我试过了这个,未处理的承诺拒绝 TypeError:无法读取未定义的属性“navModel”:-(
0赞
Mikhail Shilkov
12/9/2015
当我在 aurelia-navigation 示例应用程序上尝试时效果很好......你能在那里尝试一下,然后看看为什么你的应用程序与众不同吗?
0赞
Clare Barrington
12/9/2015
难道我不是要对 UpdateTitle 做点什么吗?见问题
0赞
Fabio
12/9/2015
@ClareBarrington米哈伊尔的解决方案应该可以正常工作。你能解释一下为什么我没有为你工作吗?
0赞
Clare Barrington
12/9/2015
我收到一个错误:未处理的承诺拒绝 TypeError:无法读取未定义的属性“navModel”
评论