Я создал Asp.Net MVC и использовал nuget для добавления HotTowel (V2.0.1 от 11/11/2013). Я создал пару моделей ViewModel, Models. Однако, я получил следующую ошибку.Не удалось загрузить требуемый модуль маршрутизации? дюрандальная ошибка?
"Не удалось загрузить маршрутизируемого модуль (ViewModels/myVM) Подробности:. Таймаут загрузки модулей: Дюрандаль/плагины/маршрутизатор \ nhttp: //requirejs.org/docs/errors.html#timeout"
ли это проблема durandal/plugins/router
? Или это может быть вызвано некоторым кодом, который я добавил?
Ошибка произошла в Scripts/durandal/system.js.
var logError = function(error) {
if(error instanceof Error){
throw error;
}
throw new Error(error);
};
Ниже приведен код VM.
define(['services/datacontext', 'durandal/plugins/router', 'services/logger'],
// Remove the durandal/plugins/router and the functions will get rid of the error.
function (datacontext, router, logger) {
var title = 'Event';
var vm = {
activate: activate,
deactivate: deactivate,
refresh: refresh,
events: events,
title: title
};
return vm;
//#region Internal Methods
var events = ko.observableArray();
function activate() {
logger.log(title + ' View Activated', null, title, true);
return datacontext.getEventPartials(events);
}
var deactivate = function() {
events([]);
};
var refresh = function() {
return datacontext.getEventPartials(events, true);
};
//#endregion
});
Ниже стек вызовов
logError [system.js] Line 92 Script
Anonymous function [router.js] Line 359 Script
[External Code]
Anonymous function [system.js] Line 260 Script
[External Code]
[Async Call]
....
код на router.js,
isProcessing(true);
router.activeInstruction(instruction);
if (canReuseCurrentActivation(instruction)) {
ensureActivation(activator.create(), currentActivation, instruction);
} else {
system.acquire(instruction.config.moduleId).then(function(module) {
var instance = system.resolveObject(module);
ensureActivation(activeItem, instance, instruction);
}).fail(function(err){
system.error('Failed to load routed module (' + instruction.config.moduleId + '). Details: ' + err.message);
});
}
}
И предыдущий один в system.js.
acquire: function() {
var modules,
first = arguments[0],
arrayRequest = false;
if(system.isArray(first)){
modules = first;
arrayRequest = true;
}else{
modules = slice.call(arguments, 0);
}
return this.defer(function(dfd) {
require(modules, function() {
var args = arguments;
setTimeout(function() {
if(args.length > 1 || arrayRequest){
dfd.resolve(slice.call(args, 0));
}else{
dfd.resolve(args[0]);
}
}, 1);
}, function(err){
dfd.reject(err);
});
}).promise();
},
Как выглядит 'require.config.paths'? Обычно путь к маршрутизатору - 'plugins/router' в 2.0.x. Кроме того, переместите все vars, определенные ниже 'return vm' над' var vm = {... ', иначе они не будут определены до использования. – RainerAtSpirit
require.config в main.js является 'require.config ({ пути: { 'текст': '../Scripts/text', 'Дюрандаль': '../Scripts/durandal', ' plugins ':' ../Scripts/durandal/plugins ', ' переходы ':' ../Scripts/durandal/transitions ' } }); ' – ca9163d9
Попробуйте заменить' 'durandal/plugins/router'' на' «plugins/router» в коде VM. – RainerAtSpirit