そのため、backbonejs を使用して、Google データストアから受け取ったデータに基づいて HTML ページ ベースを生成しています。私が抱えている問題は、データが受信される前に render メソッドが戻るのを止めようとしていることです。
ちょっとした副次的な質問: html を渡す window.open() を開くことは可能ですか?
そのため、backbonejs を使用して、Google データストアから受け取ったデータに基づいて HTML ページ ベースを生成しています。私が抱えている問題は、データが受信される前に render メソッドが戻るのを止めようとしていることです。
ちょっとした副次的な質問: html を渡す window.open() を開くことは可能ですか?
あなたのコレクション:
var c = Backbone.Collection.extend({
url: '/path/to/api',
initialize: function() {
this.deferred = this.fetch();
}
});
あなたのビューで:
var v = Backbone.View.extend({
render: function() {
c.deferred.done(function() {
/* Render your View here */
});
}
});
これはcollection.fetch()
、jqXHR を返すことで可能になります。詳細については、こちらをご覧ください。
html を使用して window.open() を呼び出す代わりに (基本的にはデータを渡します)、window.open() でウィンドウを開き、その後、そのウィンドウで定義済みの関数を呼び出してデータ (または HTML) を渡すことができます。 )その機能に、あなたの仕事をさせてください:)
なぜそれと戦うのですか?Google データが移動する領域にスピナーを使用してページを読み込みます。Google データが最終的に戻ってきたら、そのデータでバックボーンを更新し、再度レンダリングします。今回はスピナーの代わりにデータを使用します。
本当に戦いたい場合は、async
オプションを使用して jQuery ajax 呼び出しを同期的に実行することができます。async: false
ajax 呼び出しに渡すオプションに追加します。