Привет, я новичок в создании приложений для веб-страниц, я начал с видео HotTowel от Джона Папы и первоначально использовал шаблон HotTowel VSIX.
Когда я решил обновиться до Durandal 2.0, я столкнулся с проблемой, что приложение не переходит из метода активации в модуле оболочки.
После некоторого поиска в Google я обнаружил, что проблема связана с durandal, использующим обещания jquery, я попробовал исправление, объявленное в http://durandaljs.com/documentation/Q/, но он не работает, может кто-нибудь пролить свет на проблему.
PS: я новичок в js и в Интернете в целом, поэтому извините, если вопрос недостаточно ясен
в моем shell.js у меня есть:
function activate() {
app.title = config.appTitle;
return datacontext.primeData()
.then(boot)
.fail(failedInitialization);
}
function boot() {
logger.log('CodeCamper Backend Loaded!', null, system.getModuleId(shell), true);
router.map(config.routes).buildNavigationModel();
return router.activate();
}
function addSession(item) {
router.navigateTo(item.hash);
}
function failedInitialization(error) {
var msg = 'App initialization failed: ' + error.message;
logger.logError(msg, error, system.getModuleId(shell), true);
}
и в моем контексте данных:
var primeData = function () {
var promise = Q.all([
getLookups(),
getSpeakerPartials(null, true)])
.then(applyValidators)
return promise
.then(success);
function success() {
datacontext.lookups = {
rooms: getLocal('Rooms', 'name', true),
tracks: getLocal('Tracks', 'name', true),
timeslots: getLocal('TimeSlots', 'start', true),
speakers: getLocal('Persons', orderBy.speaker, true)
};
log('Primed data', datacontext.lookups);
}
function applyValidators() {
model.applySessionValidators(manager.metadataStore);
}
};