我正在使用 Backbone.js 学习 JavaScript MVC 应用程序开发,并且在视图中呈现模型集合时遇到问题。这是我想要做的:
页面完成加载后,从服务器检索数据作为模型集合
在视图中渲染它们
这就是我想做的,这就是我到目前为止所做的:
$(function(){
"use strict";
var PostModel = Backbone.Model.extend({});
var PostCollection = Backbone.Collection.extend({
model: PostModel,
url: 'post_action.php'
});
var PostView = Backbone.View.extend({
el: "#posts-editor",
initialize: function(){
this.template = _.template($("#ptpl").html());
this.collection.fetch({data:{fetch:true, type:"post", page:1}});
this.collection.bind('reset', this.render, this);
},
render: function(){
var renderedContent = this.collection.toJSON();
console.log(renderedContent);
$(this.el).html(renderedContent);
return this;
}
});
var postList = new PostCollection();
postList.reset();
var postView = new PostView({
collection: postList
});
});
问题
据我所知,Chrome 正在记录来自服务器的响应,并且它是我想要的 JSON 格式。但在我看来,它并没有呈现出来。控制台中没有明显的错误。
服务器有一个处理程序,它接受 GET 参数并回显一些 JSON:
http://localhost/blog/post_action.php?fetch=true&type=post&page=1
[
{
"username":"admin",
"id":"2",
"title":"Second",
"commentable":"0",
"body":"This is the second post."
},
{
"username":"admin",
"id":"1",
"title":"Welcome!",
"commentable":"1",
"body":"Hello there! welcome to my blog."
}
]