$.when()
と一緒に、配列に可変長の遅延関数を使用しようとしています。これらの関数は、サーバーからデータをフェッチし、DOMでレンダリングします。これらの作業がすべて完了すると、いくつかのスクリプトがロードされ、いくつかのポストロードアクションが実行されます。ここで
function loadAllGames(updateGames, updatePlayoffs) {
var deferredLoads = [];
if (updateGames !== false)
deferredLoads.push($.Deferred(loadGames));
if (updatePlayoffs !== false)
deferredLoads.push($.Deferred(loadPlayoffs));
$.when.apply($, deferredLoads).done(loadPostGamesLoadData);
}
問題がloadPostGamesLoadData
が呼び出されないされないことです。
両方loadGames
とloadPlayoffs
リターンの約束:
function loadGames() {
$.get('{% url wave_spinner_template %}', {message: 'Loading games...'}, function (data) {
$('#weeks').html(data);
});
return $.ajax({
url: "{% url weeks season.id %}",
success: function (data) {
$('#weeks').html(data);
},
error: function() {
console.log("Error loading games.");
}
});
}
function loadPlayoffs() {
$.get('{% url wave_spinner_template %}', {message: 'Loading playoffs...'}, function (data) {
$('#playoffs').html(data).children('.spinner-container').addClass('border-top');
});
return $.ajax({
url: "{% url playoffs season.id %}",
success: function (data) {
var $playoffs = $('#playoffs');
if (!$playoffs.length) {
$playoffs = $('<div>', {id: 'playoffs'});
$('#weeks').after($playoffs);
}
$playoffs.html(data);
},
error: function() {
console.log("Error loading playoffs.");
}
});
}
返さ全く約束はありません。 – Jai
それは '$ .ajax'を返しています。私が見たすべての例は、約束を返すためにこれを使用していました。代わりに私は何をすべきですか? – dabadaba
将来、完全に別の質問をするのではなく、かなり不完全だった以前の質問を編集してください。あなたはいつでもあなたの質問を修正するために "編集"リンクを使用することができます。 – jfriend00