3

在下面的代码中,我看到集合初始化程序触发。我还可以根据调整数据库命中次数的服务器端查询模块使模型初始化程序触发不同的次数,因此我确信我的 fetch 正在命中服务器。但是,我在获取后从未收到警报。有人可以纠正我的错误吗?

$(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关键字Personand PersonList,你忘了。
  • fetch()返回一个 jQuery XHR 对象。您应该将complete回调与调用绑定。
  • fetch()接受一个选项哈希,而不是多个选项。
于 2012-08-18T19:59:37.880 回答