こんにちは、Web ページ アプリケーションの作成は初めてです。John Papa の HotTowel ビデオから始め、最初は HotTowel VSIX テンプレートを使用しました。
Durandal 2.0 にアップデートすることにしたとき、シェル モジュールの activate メソッドからアプリケーションが進まないという問題に直面しました。
いくつかのGoogle検索の後、問題はjqueryの約束を使用したdurandalに起因することがわかりました。http://durandaljs.com/documentation/Q/で発表された修正を試みましたが 、うまくいきませんでした。問題について。
PS: 私は一般的に js と web に慣れていないので、質問が十分に明確でない場合は申し訳ありません
私の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);
}
};