从Backbone Collection Fetch()获取数据

Flu*_*yte 0 collections object backbone.js

我对Backbone相对较新,我正试图在服务器端代码之间来回传递数据.我有一个收藏设置:

var AppCollection = Backbone.Collection.extend({

    model: AppModel,

    url: 'data.php'

});
Run Code Online (Sandbox Code Playgroud)

然后在我看来我的初始化拉动:

initialize: function(){
    items = this.collection.fetch();
    console.log(items);
}
Run Code Online (Sandbox Code Playgroud)

哪个输出items对象.我试图console.log(items.responseText)打印出返回的JSON的内容,但我得到了undefined.

这是我在控制台中看到的内容console.log(items):

在此输入图像描述

我的目标只是输出responseText.有任何想法吗?

Cyc*_*one 6

正如骨干文档所说,.fetch()返回一个jQxhr对象.

有两种可能的方法可以实现,或者你可以像这样写入成功和错误回调到fetch:

this.collection.fetch({
  success : function(collection, response) {
    // code here
  },

  error : function(collection, response) {
    // code here
  }
});
Run Code Online (Sandbox Code Playgroud)

或者,您可以将事件绑定到集合成功加载后触发的集合的重置方法.

this.collection.bind("reset", method_name);
Run Code Online (Sandbox Code Playgroud)

您可以访问该集合method_name,因为它将在执行fecth()ajax 后执行.但我建议使用第一种方式,因为第二种方式有自己的其他用例.