Использование Дюрандаль SPA есть в моей shell.js:Q решение для отсроченного AJAX и когда() сделано()
function activate() {
datacontext.getUser(user);
return datacontext
.primeData()
.then(boot)
.fail(failedInitialization); //return for durandal
}
THe загрузки() функция зависит от результата от DataContext. getUser (пользователь).
Я бы хотел получить учетные данные пользователя перед активацией. Если primeData() ничего не делает (на данный момент):
var primeData = function() {
return Q.all([]);
};
затем загрузки() не получает результат от DataContext:
var getUser = function(userObservable) {
userObservable();
var options =
{
url: 'api/user',
type: 'GET',
datatype: 'json'
};
return $.ajax(options).then(queryOk).fail(queryNotOk);
function queryOk(data) {
userObservable(model.user(data));
}
function queryNotOk(data, textStatus) {
...
}
};
Вопрос заключается в Как я могу использовать Q вместо JQuery-х $ .when() сделано():.
$.when(datacontext.getUser(user)).done(function() {
return datacontext
.primeData()
.then(boot)
.fail(failedInitialization);
});