【问题标题】:Durandal Routing: Mapping a route with an id?Durandal 路由:使用 id 映射路由?
【发布时间】:2013-05-21 20:56:03
【问题描述】:

我有以下路线:

 router.map([                
        { url: 'home', moduleId: 'viewmodels/home', name: 'Home', visible: false },               
        { url: 'my', moduleId: 'viewmodels/folder', name: 'My Content', visible: false }, // Should display contents of /folder/2
        { url: 'public', moduleId: 'viewmodels/folder', name: 'Public Content', visible: false }, // Should display contents of /folder/3
        { url: 'set/:id', moduleId: 'viewmodels/set', name: 'Set', visible: false },
        { url: 'folder/:id', moduleId: 'viewmodels/folder', name: 'Folder', visible: false }
    ]);

我想添加如下内容:

{ url: 'test', moduleId: 'viewmodels/folder', id: '2', name: 'Specific Folder', visible: false }

导航到“test”的位置显示 /folder/2(但 url 保持 /test)。如何使用 durandal 路由器实现此目的?

【问题讨论】:

    标签: knockout.js single-page-application durandal


    【解决方案1】:

    在路由映射上使用设置对象如下:

    { 
        url: 'test',
        hash: '#/test',
        moduleId: 'viewmodels/folder',
        name: 'Specific Folder',
        visible: false,
        settings: {
            id: 2
        }
    }
    

    您可以在下面的视图模型中进行调试(看起来 Sammy 实例正在作为参数传入):

    define(function (require) {
        return {
            activate: activate
        };
    
        function activate(sammy) {
            var settings = sammy.routeInfo.settings;
            var id = settings.id;
            debugger;
        }
    });
    

    id的值应该是2。

    希望对您有所帮助,如果它不尝试更多地查看documentation :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2018-06-14
      • 2010-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多