ホットタオルベースの (MVC4 SPA) プロジェクトで、Durandal を使用して子ルーターを適切に作成する方法を理解できず、一日中苦労しました。これは私が現時点で持っているものです:
shell.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
});
私が現在抱えている問題:
- インベントリ ビューをクリックすると 2 回アクティブになります
- 空の 3D 角丸四角形が右上に表示されますが、それ以上のナビゲーション オプションは表示されません...それが消えなかったプログレス バーなのか、それとも失敗したナビゲーション要素なのかはわかりません。
私のプロジェクトファイルは次のように編成されています: