1

そのため、backbonejs を使用して、Google データストアから受け取ったデータに基づいて HTML ページ ベースを生成しています。私が抱えている問題は、データが受信される前に render メソッドが戻るのを止めようとしていることです。

ちょっとした副次的な質問: html を渡す window.open() を開くことは可能ですか?

4

3 に答える 3

0

あなたのコレクション:

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 を返すことで可能になります。詳細については、こちらをご覧ください。

于 2012-09-02T05:43:07.083 に答える
0

html を使用して window.open() を呼び出す代わりに (基本的にはデータを渡します)、window.open() でウィンドウを開き、その後、そのウィンドウで定義済みの関数を呼び出してデータ (または HTML) を渡すことができます。 )その機能に、あなたの仕事をさせてください:)

于 2012-08-31T22:37:46.083 に答える
0

なぜそれと戦うのですか?Google データが移動する領域にスピナーを使用してページを読み込みます。Google データが最終的に戻ってきたら、そのデータでバックボーンを更新し、再度レンダリングします。今回はスピナーの代わりにデータを使用します。

本当に戦いたい場合は、asyncオプションを使用して jQuery ajax 呼び出しを同期的に実行することができます。async: falseajax 呼び出しに渡すオプションに追加します。

jQuery.ajax() ドキュメント

于 2012-08-31T22:51:03.587 に答える