【发布时间】:2011-07-17 13:16:51
【问题描述】:
我刚刚开始使用backbone.js。而且我在从服务器获取数据时遇到问题。这是我从服务器得到的响应。
[{
"list_name":"list1",
"list_id":"4",
"created":"2011-07-07 21:21:16",
"user_id":"123456"
},
{
"list_name":"list2",
"list_id":"3",
"created":"2011-07-07 21:19:51",
"user_key":"678901"
}]
这是我的 javascript 代码...
// Router
App.Routers.AppRouter = Backbone.Router.extend({
routes: {
'': 'index'
},
initialize: function() {
},
index: function() {
var listCollection = new App.Collections.ListCollection();
listCollection.fetch({
success: function() {
new App.Views.ListItemView({collection: listCollection});
},
error: function() {
alert("controller: error loading lists");
}
});
}
});
// Models
var List = Backbone.Model.extend({
defaults: {
name: '',
id: ''
}
});
App.Collections.ListStore = Backbone.Collection.extend({
model: List,
url: '/lists'
});
// Initiate Application
var App = {
Collections: {},
Routers: {},
Views: {},
init: function() {
var objAppRouter = new App.Routers.AppRouter();
Backbone.history.start();
}
};
我在 Backbone.js 的这一行中收到错误“无法将同一模型添加到集合中两次”
if (already) throw new Error(["Can't add the same model to a set twice", already.id]);
我检查了带注释的 Backbone.js,发现第一个模型被添加到集合中,但第二个模型给出了这个错误。为什么会这样?我应该更改服务器端响应中的某些内容吗?
【问题讨论】: