Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Collections 无法使用Backbone.js集合从Twitter RESTful API获取数据_Collections_Backbone.js - Fatal编程技术网

Collections 无法使用Backbone.js集合从Twitter RESTful API获取数据

Collections 无法使用Backbone.js集合从Twitter RESTful API获取数据,collections,backbone.js,Collections,Backbone.js,我正在尝试学习使用Backbone.js收集方法从数据库获取数据:fetch() jsfiddle示例如下所示 返回的对象长度为零,这意味着我不会返回任何结果。我可以很容易地使用jquery ajax获得json,而且Backbone.sync显然也使用了.ajax方法。我能知道怎么了吗 您遇到了两个问题 首先,twitter的结果(你想变成主干模型的结果)位于“结果”属性下。要使用此数据,需要重写集合中的parse方法。这是主干文档中使用的具体示例: 第二个问题是fetch()方法是异步的,

我正在尝试学习使用Backbone.js收集方法从数据库获取数据:fetch()

jsfiddle示例如下所示


返回的对象长度为零,这意味着我不会返回任何结果。我可以很容易地使用jquery ajax获得json,而且Backbone.sync显然也使用了.ajax方法。我能知道怎么了吗

您遇到了两个问题

首先,twitter的结果(你想变成主干模型的结果)位于“结果”属性下。要使用此数据,需要重写集合中的parse方法。这是主干文档中使用的具体示例:

第二个问题是fetch()方法是异步的,因此当您获取集合的“长度”时,它发生在响应从twitter返回之前,因此其长度仍然为0

您需要设置一个事件处理程序来侦听“获取”的结果,然后输出长度:

var Tweet = Backbone.Model.extend();

var Tweets = Backbone.Collection.extend({
    model: Tweet,
    url: 'http://search.twitter.com/search.json?q=obama&callback=?',
    parse: function(response) {
        return response.results;
    }
});

var tweets = new Tweets();

tweets.bind('reset', function(collection) {
   alert(collection.length);
});

tweets.fetch();

如果我也想知道确切的结果,那我该怎么办?嘿,请告诉我为什么我们要使用
require.js
backbone.js
。我已经启动了jst
backbone.js
,但在一些示例中它只使用了
require.js
,所以我有点困惑于
require.js
&
backbone.js
有人能帮忙吗?