【问题标题】:Route Not Found using createChildRouter使用 createChildRouter 找不到路由
【发布时间】:2014-02-11 01:47:53
【问题描述】:

对于我的文件夹结构,我有(使用 Apps 文件夹)视图和 viewmodels 文件夹。当我尝试单击其中一个链接时,我不断收到“找不到路线”。页面加载时,Chrome 还会显示“找不到路由”。 childRouter 的新手。为什么我得到“找不到路线”的任何想法?

LVAvailability 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';
        });
    })
};

【问题讨论】:

  • 您是否在 LVAvailabillity 视图上使用router 绑定而不是compose 绑定?它也可能有助于显示您的绑定。顺便说一句,“可用性”最后只有一个“l”:-)

标签: requirejs durandal single-page-application hottowel durandal-2.0


【解决方案1】:

根据我的经验,在设置任何路由器时,您必须提供默认路由以避免出现 Route Not Found 错误消息。

尝试将您的一个子路由的路由值设置为 ''。

路线:''

【讨论】:

    【解决方案2】:

    这里缺少的组件没有使用 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();
    

    【讨论】:

      猜你喜欢
      • 2015-01-04
      • 2016-08-14
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 2017-12-29
      • 2018-08-03
      • 2015-05-12
      相关资源
      最近更新 更多