這裏是我的路由器配置:路由器無法在DurandalJS找到頁
router.useConvention();
router.mapRoute('error', 'viewmodels/error', "Error");
router.mapNav('home');
router.mapRoute('api', 'viewmodels/api', 'API Reference');
router.mapRoute('set/:id', 'viewmodels/set', 'Set');
router.mapRoute('folder/:id', 'viewmodels/folder', 'Folder');
router.handleInvalidRoute = function (route, params) {
//debugger;
router.navigateTo('#/error');
};
logger.log('app has loaded :)', null, null, false);
return router.activate('home');
我能找到/ API和其他網頁,但是當我在一個無效的路由類型,鉻控制檯給我以下內容:
我有error.js的error.html和就像其他頁面。它在App/viewmodels/error.js中,但我不必指定具有任何其他視圖/ vms的文件夾...爲什麼沒有找到它?
編輯 每約瑟夫的建議,我的「錯誤」激活,我得到這個:
我很困惑...爲什麼它尋找error.js時,它已經找到它在正確的位置,爲什麼它認爲它會在該位置找到一個html文檔?
我有一個傳統的文件結構:
您發佈的代碼適用於Durandal入門套件中的新項目。有沒有其他地方的路由器被操縱? –
只是爲了確保我搜索了我的整個解決方案,並且我沒有對路由器進行任何其他調用......我不知道是什麼原因造成的:/ – RobVious
有很強的線索表明路由看起來很好(你不是得到「找不到路由」錯誤),但解決的路徑不正確。根據我的經驗,這通常是配置錯誤的路由器或require.config。你可能想嘗試調用'router.activate('error');'而不是home,只是爲了收集發生的事情的數據點。如果它在那裏炸彈,你可以通過router.js代碼來查看差異在哪裏發生。 –