3

以下のコードでは、コレクション初期化子が起動していることがわかります。データベースのヒット数を調整するサーバー側のクエリ mod に基づいて、モデル初期化子を異なる回数起動させることもできるので、フェッチがサーバーにヒットしていると確信できます。ただし、フェッチ後にアラートを受け取ることはありません。誰かが間違いを訂正してもらえますか?

$(function () {

    Person = Backbone.Model.extend({
        initialize: function () {
            alert("Model Init");
        }
    });

    PersonList = Backbone.Collection.extend({
        model: Person,
        url: '/Tfount_Email/Email/SOAInbox',
        initialize: function () {
            alert("Collections Init");
        }
    });

    var personlist = new PersonList;

    /*
    personlist.fetch().complete(function () {
    alert("done");
    });
    */

    personlist.fetch(
        {
            error: function () {
                alert("error!!"); 
            }
        },
        {
            success: function () {
                alert("no error"); 
            }
        }
    );



});
4

1 に答える 1

4

どうぞ。

$(function () {
    var Person = Backbone.Model.extend({
            initialize: function () {
                alert("Model Init");
            }
        }),
        PersonList = Backbone.Collection.extend({
            model: Person,
            url: '/Tfount_Email/Email/SOAInbox',
            initialize: function () {
                alert("Collections Init");
            }
        }),
        personlist = new PersonList();

    personlist.fetch({
       error: function () {
         alert("error!!"); 
       },
       success: function () {
          alert("no error"); 
       }
    }).complete(function () {
        alert("done");
    });
});

ノート:

  • とのvarキーワードを追加しましたが、忘れてしまいました。PersonPersonList
  • fetch()jQueryXHRオブジェクトを返します。completeコールバックを呼び出しにバインドする必要があります。
  • fetch()複数のオプションハッシュではなく、1つのオプションハッシュを受け入れます。
于 2012-08-18T19:59:37.880 に答える