我将 Durandal 用于一个非常简单的网站。在我所有的浏览器选项卡中,页面标题都带有“未定义|” 附加到应用程序标题的前面。Durandal 在哪里获得和设定这个价值?
塔拉克
我将 Durandal 用于一个非常简单的网站。在我所有的浏览器选项卡中,页面标题都带有“未定义|” 附加到应用程序标题的前面。Durandal 在哪里获得和设定这个价值?
塔拉克
最终,Durandal 的路由器插件设置了 document.title。
https://github.com/dFiddle/dFiddle-1.2/blob/gh-pages/App/durandal/plugins/router.js#L254
onNavigationComplete: function (routeInfo, params, module) {
if (app.title) {
document.title = routeInfo.caption + " | " + app.title;
} else {
document.title = routeInfo.caption;
}
},...
通常,Durandal 能够在路由对象上构造一个缺少的标题属性,因此可能在设置路由的方式上有一些不同。
https://github.com/dFiddle/dFiddle-1.2/blob/gh-pages/App/samples/shell.js#L6
router.map([
{ url: 'hello', moduleId: 'samples/hello/index', name: 'Hello World', visible: true },
{ url: 'hello/:name', moduleId: 'samples/hello/index', name: 'Examples' },...
]);
您可以在视图模型被激活时设置页面标题:
activate: function (params) {
// Setting page title
params.routeInfo.caption = "My Page Title";
return true;
}
对 RainerAtSpirit 的回答稍作修改:在路线中指定“标题”而不是“名称”。
router.map([
{ url: 'hello', moduleId: 'samples/hello/index', title: 'Hello World', visible: true },
{ url: 'hello/:name', moduleId: 'samples/hello/index', title: 'Examples' },...
]);