我有Durandal的小型SPA測試應用。 另外我有非常有線的問題。 首先,我的文件夾結構是:
應用
--durandal
--viewmodels
---- user.js的
--views
---- user.html
- 主。 js
而當結構就像所有的工作都很好。但是,如果我創建結構類似
應用
--durandal
--_用戶
----的ViewModels
------ user.js的
----意見
---- --user.html
Durandal路由問題
我得到像localhost/App/_users/viewmodels /users.html 404 Not Found錯誤。在user.js被require.js加載後會發生這種情況。
我main.js看起來像
require.config({
paths: { "text": "../durandal/amd/text" }
});
define(function (require) {
var system = require('../durandal/system'),
app = require('../durandal/app'),
router = require('../durandal/plugins/router'),
viewLocator = require('../durandal/viewLocator'),
logger = require('../logger');
system.debug(true);
app.start().then(function() {
// route will use conventions for modules
// assuming viewmodels/views folder structure
router.useConvention();
// When finding a module, replace the viewmodel string
// with view to find it partner view.
// [viewmodel]s/sessions --> [view]s/sessions.html
// Otherwise you can pass paths for modules, views, partials
// Defaults to viewmodels/views/views.
viewLocator.useConvention();
app.setRoot('viewmodels/shell');
// override bad route behavior to write to
// console log and show error toast
router.handleInvalidRoute = function (route, params) {
logger.logError('No route found', route, 'main', true);
};
});
});
我認爲這個問題是與router.useConvention(東西);或與viewLocator.useConvention();但簡單的找不到任何這種行爲的原因。
任何幫助,建議,想法如何解決這個問題?
感謝
謝謝,但useConvention()或不工作或我只是不知道究竟要放在那裏。如果我把useConvention('_ users/viewmodels','_users/views')放在那裏,那麼app.setRoot('viewmodels/shell');如果我把.useConvention('viewmodels','views');,然後再次獲取本地主機/應用程序,然後我得到錯誤404找不到 - 本地主機/應用程序/ _users/viewmodels/shell.html「 /_users/viewmodels/users.html 404 Not Found。因此,這是非常令人困惑的,如果我將user.html從視圖文件夾移動到查看文件夾,然後是所有分支,但會得到稍微不同的調試消息 – dewebeloper
使用'useConvention('_ users /這個應該可以工作,記住,任何時候當你引用一個視圖模型時,你仍然必須使用*視圖模型,而不是視圖模型的視圖模型,完整的* moduleid路徑,這是從App文件夾的路徑。 – Tyrsius
謝謝,但仍然不起作用。當我應用您的建議,然後我得到「NetworkError:404未找到 - 本地主機/應用程序/ _users/_users/viewmodels /外殼.js「 – dewebeloper