3

我将 Durandal 用于一个非常简单的网站。在我所有的浏览器选项卡中,页面标题都带有“未定义|” 附加到应用程序标题的前面。Durandal 在哪里获得和设定这个价值?

塔拉克

4

3 回答 3

4

最终,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' },...
]);
于 2013-05-31T07:50:39.487 回答
1

您可以在视图模型被激活时设置页面标题:

activate: function (params) {

    // Setting page title
    params.routeInfo.caption = "My Page Title";

    return true;
}
于 2013-08-21T13:27:43.663 回答
0

替换 Durandal 2.1.0 中的页面标题

(如果您希望页面标题与路线的最后一级不同)

对 RainerAtSpirit 的回答稍作修改:在路线中指定“标题”而不是“名称”。

router.map([
   { url: 'hello', moduleId: 'samples/hello/index', title: 'Hello World', visible: true },
   { url: 'hello/:name', moduleId: 'samples/hello/index', title: 'Examples' },...
]);
于 2016-03-01T14:54:27.883 回答