我整天都在苦苦挣扎,无法弄清楚如何在我的基于热毛巾(MVC4 SPA)的项目中使用 Durandal 正确创建子路由器。这就是我目前所拥有的:
外壳.js
var routes = [
{ route: '', moduleId: 'home', title: 'Home', nav: 1 },
{ route: 'inventory/index', moduleId: 'inventory/inventory', title: 'Inventory', nav: 2 }];
return router.makeRelative({ moduleId: 'viewmodels' }) // router will look here for viewmodels by convention
.map(routes) // Map the routes
.buildNavigationModel() // Finds all nav routes and readies them
.activate(); // Activate the router
库存.js
define(['services/logger', 'plugins/router'], function (logger, router) {
var title = 'Details';
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels/inventory',
fromParent: true
}).map([
{ route: '', moduleId: 'inventory', title: 'Inventory', nav: 3 },
{ route: 'items', moduleId: 'items', title: 'Items', nav: 4 }])
.buildNavigationModel();
var vm = {
router: childRouter,
activate: activate,
title: title
};
return vm;
//#region Internal Methods
function activate() {
logger.log(title + ' View Activated', null, title, true);
}
//#endregion
});
我目前遇到的问题:
- 当我单击它时,库存视图被激活了两次
- 尽管右上角出现了一些空的 3D 圆角矩形,但没有进一步的导航选项可见......我不确定这是一个未能消失的进度条还是一些失败的导航元素。
我的项目文件是这样组织的: