我第一次使用BackboneJS,并试图从数据库中获取数据。
按照不同的教程并尝试理解BackboneJS,我最终编写了以下代码。
var UserModel = Backbone.Model.extend({
defaults: {
id: 0,
name: "",
username: "",
password: "",
email: ""
}
});
var UserCollection = Backbone.Collection.extend({
model: UserModel,
url: "db.php"
});
var UserList = Backbone.View.extend({
el: '.users',
template: _.template($("#template").html()),
render: function() {
console.log("Inside render");
var that = this;
var UserItems = new UserCollection();
UserItems.fetch({
success: function() {
console.log(UserItems.toJSON());
$(this.el).html(that.template({ userItems: UserItems.toJSON() }));
}
});
return this;
}
});
var UserRouter = Backbone.Router.extend({
routes: {
"": "home"
}
});
var userList = new UserList();
var userRouter = new UserRouter();
userRouter.on('router:home', function() {
userList.render();
});
Backbone.history.start();
我在控制台中发现以下错误:
Uncaught TypeError: Cannot read property 'replace' of undefined : underscore.js:1304
我不确定我犯的是什么错误但是在搜索时我发现它与id或类在HTML中找不到时有关。
这是我的index.html文件
<div class='users'></div>
<!-- Templates -->
<script type='text/template' id='template'>
<table>
<% _.each(userItems, function(items) { %>
<tr>
<td><%= items.name %></td>
</tr>
<% }); %>
</table>
</script>