Javascript 在Backbone.js中,如何从URL获取数据?
我试图从URL获取推文,该URL以以下形式返回数据:Javascript 在Backbone.js中,如何从URL获取数据?,javascript,backbone.js,Javascript,Backbone.js,我试图从URL获取推文,该URL以以下形式返回数据: [ {"user":"someuser1","tweet":"this is a #tweet","date":"2011-09 02"}, {"user":"someuser2","tweet":"and this is a #tweet","date":"2011-09 02"}, {"user":"someuser3","tweet":"and this is another #tweet","date":"2011-09"
[
{"user":"someuser1","tweet":"this is a #tweet","date":"2011-09 02"},
{"user":"someuser2","tweet":"and this is a #tweet","date":"2011-09 02"},
{"user":"someuser3","tweet":"and this is another #tweet","date":"2011-09"}
]
我有一个模型
window.Tweet = Backbone.Model.extend({
initialize: function(){
this.bind('change',function(){
})
},
defaults: {
"user": "some-other-user",
"tweet": "this is some tweet",
"date" : "2012-01-06"
}
});
我有一个收藏
window.Tweets = Backbone.Collection.extend(null,{
url: '/tweets/',
model: Tweet,
parse: function(response) {
return response.results;
}
});
我有一个观点
window.TweetsView = Backbone.View.extend({
el: $('#content-top'),
initialize: function(){
this.model.bind('change',this.render,this);
},
render: function() {
var TweetsCollection = Backbone.Collection.extend({
model : Tweet,
url: '/tweets/',
parse: function(response) {
return response.results;
}
});
var tweets = new TweetsCollection;
tweets.fetch();
console.log(tweets.toJSON());
} ...
两者
及
给我“未定义”我缺少什么
编辑
如果我记录响应(在视图中),我确实会得到一些反馈:
[object Object],[object Object],[object Object]
所以,我很接近,但仍然缺少一些东西。根据您的评论,我想说数据是正确的 尝试添加
console.log(响应)解析函数中的代码>
在我的主干模型中,parse()方法只返回第一个参数,在您的例子中是response。我想你需要改变一下
return response.results;
到
这可能是一个愚蠢的问题,但您是否执行了(new TweetsView()).render()
?是(不是一个愚蠢的问题:)。现在我意识到我放弃了parse函数,添加了它(更新了上面的代码),但当我登录到控制台时仍然得到一个空数组[]。当调用render()时,您应该会在firebug中看到一个GET请求。这是什么反应?我得到的是[{“用户”:“某用户1”,“推特”:“这是一条推特”,“日期”:“2011-09 02”},{“用户”:“某用户2”,“推特”:“这是一条推特”,“日期”:“2011-09 02”},{“用户”:“某用户3”,“推特”:“这是另一条推特”,“日期”:“2011-09”}上面的反应肯定让我有所收获,埃里克,它记录3个对象。紧接着Backbone.js(0.5.3)抛出错误:uncaughttypeerror:object不是函数发现问题后,Eric——感谢您的帮助。我在集合构造器中有一个名称空间模型,model:App.Tweet,这是一个很好的例子。在我删除后,它是好的,我现在得到的回应,我是在追求。
[object Object],[object Object],[object Object]
return response.results;
return response;