我试图找到当前页面的标题(导航)...对我有用的唯一方法是:这有点难看。
<!-- ko foreach: router.navigationModel -->
<h1 data-bind="text: title, visible: isActive"></h1>
<!-- /ko -->
更好的方法是这个...但我不知道当前的索引页
<!--<h1 data-bind="text: router.navigationModel()[____INDEX____].title"></h1>-->
有任何建议以更好的方式解决这个问题吗?
答案 0 :(得分:1)
Durandal的路由器不存储当前路由的索引,它只提供isActive
属性来检查给定路由是否处于活动状态。因此,唯一的选择是搜索isActive
路线。
您可以在foreach
中创建一个包含此路径查找逻辑的计算器,而不是在视图中使用shell.js
:
currentTitle: ko.computed(function () {
var activeRoute = ko.utils.arrayFirst(router.navigationModel(),
function (item) {
return item.isActive();
});
if (activeRoute)
return activeRoute.title;
})
现在在shell.html
你可以写:
<h1 data-bind="text: currentTitle"></h1>
或者,在评论中指出gerrod时,您可以使用activeInstruction
的{{1}}属性,从那里获取当前router
,然后config
}}:
title