美好的一天!我开始调整Backbone.js框架,我对模型的URL有一个很滑的把握:
var TodoItem = Backbone.Model.extend({
urlRoot: 'http://localhost:3354/api/todo/GetAllTodo' // this guy right here
}
影响Collection的URL - 一旦在集合中使用了所述模型:
var TodoList = Backbone.Collection.extend({
model: TodoItem,
url: 'http://localhost:3354/api/todo/DosomethingElse' //Conflict of URL?
}
最后,当我尝试model.fetch()
时,服务通过[{}]
格式返回数据的JSON表示,这使得我的模型具有object
属性,其中包含实际的json数据返回 - 这是一个问题 - 因为模型适用于单个记录而不是array[]
数据。
感谢您的时间,我非常感谢您的帮助。
答案 0 :(得分:4)
如果您检查Model.url
的Backbone源代码,您会看到模型的url基础是由
var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url');
这意味着当您执行TodoItem.urlRoot
时,TodoList.url
优先于model.fetch()
您可以使用parse
提取所需的格式:
var TodoItem = Backbone.Model.extend({
urlRoot: 'http://localhost:3354/api/todo/GetAllTodo',
parse: function(data) {
return data[0];
}
}