对于我的文件夹结构,我有(带有Apps文件夹)视图和viewmodels文件夹。当我尝试点击其中一个链接时,我一直收到“找不到路线”。 Chrome加载页面时也会显示“找不到路由”。 childRouter的新功能。任何想法,为什么我得到“路线未找到?”
LVAvailabillity viewmodel -
define(['plugins/router', 'durandal/system', 'knockout'], function (router, system, ko) {
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels',
route: '',
fromParent: true
}).map([
{ route: 'AccessDenied', moduleId: 'AccessDenied', title: 'AccessDenied', type: 'intro', hash: '#AccessDenied', nav: true },
{ route: 'LCPost', moduleId: 'LCPost', title: 'LCPost', type: 'intro', hash: '#LCPost', nav: true }
]).buildNavigationModel();
var vm = {
router: childRouter,
title: 'Letter Of Credit',
introSamples: ko.computed(function () {
return ko.utils.arrayFilter(childRouter.navigationModel(), function (route) {
return route.type == 'intro';
});
}),
detailedSamples: ko.computed(function () {
return ko.utils.arrayFilter(childRouter.navigationModel(), function (route) {
return route.type == 'detailed';
});
})
};
答案 0 :(得分:0)
根据我的经验,在设置任何路由器时,您必须提供默认路由以避免路由未找到错误消息。
尝试将您的一个子路线的路线值设置为''。
路线: ''
答案 1 :(得分:0)
此处缺少的组件未使用splat路径。我改变了代码如下,它工作(只有改变的是添加星*) -
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels',
route: '',
fromParent: true
}).map([
{ route: '*AccessDenied', moduleId: 'AccessDenied', title: 'AccessDenied', type: 'intro', hash: '#AccessDenied', nav: true },
{ route: '*LCPost', moduleId: 'LCPost', title: 'LCPost', type: 'intro', hash: '#LCPost', nav: true }
]).buildNavigationModel();