我正在编写一个(据称)简单的Backbone应用程序来与Wordpress(使用JSON API插件)进行交互。我可以使用集合显示页面上的所有当前帖子,但是无法获取单个帖子。 (注意,这里使用的是ajax prefilter)。
var NewsItem = Backbone.Model.extend({
urlRoot: '/api/get_post/',
parse: function(response){
return response.post;
}
});
我的观点:
var SingleNewsItemView = Backbone.View.extend({
tagName: "div",
id: "single-view",
initialize: function(data) {
this.render(data);
},
render: function(data) {
var that = this;
var singleNewsItem = new NewsItem();
singleNewsItem.fetch({
data: $.param({"id": data}),
success: function(returnitem) {
var template = _.template($('#single-news-item-template').html(), {newsitem: returnitem});
that.$el.html(template);
},
error: function(){
alert('error retrieving item');
}
});
}
});
正在调用正确的URL,并在屏幕上显示。但是,很快之后,使用id = undefined调用相同的URL,这导致在新闻项的视图上覆盖了错误的数据。
我在点击处理程序中放置了一个alert(),并且由于鬼问题而没有触发两次 - 这是fetch()发生的事情,我无法弄明白!