【发布时间】:2014-05-18 12:56:26
【问题描述】:
我有一个静态文件,每行只有一个日期时间,例如:
2014-03-14T16:32
2014-03-15T13:04
2014-03-16T06:44
...
我想将其用作主干集合的只读数据源。显然这不是预期的格式。我想我可以在我的集合上使用 parse 方法将其转换为适当的对象数组。不幸的是,这似乎不起作用。
首先,如果我不重写 fetch,则永远不会调用 parse 方法——它会进入错误处理程序,尽管具体原因不明——它实际上并没有抛出任何错误。我猜那是因为它期待不同的响应类型或其他什么?
其次,如果我这样重写 fetch 和 parse 方法:
var MyColl = Backbone.Collection.extend({
model: MyModel,
url: 'date-list.txt',
parse: function(data) {
var result = _(data.split("\n")).compact().map(function(item, i) {
return { theDate: item, globalIndex: i };
});
return result;
},
fetch: function() {
$.get(this.url, this.parse);
}
});
它正确地进入了解析,并且解析似乎构建了一个有效的对象,但是我的集合在整个操作之后有 0 个模型......
我想集合是空的,因为当我调用 parse 时,它不再是预期流程的一部分,因此对结果没有任何处理。关于如何正确处理服务器返回的内容的任何其他想法?
显然,我可以让服务器返回 JSON,或者我可以在骨干网之外使用自己的获取函数,但我希望有办法避免这些想法。
【问题讨论】:
标签: javascript ajax backbone.js