我刚开始使用Backbone.js.我想创建一个Collection并从外部源添加一些数据.
实际上数据当前是CSV格式,而不是JSON格式,但是如果要容易的话,我可以用JSON重新渲染它.
那么,有两个问题:
>我在哪里将外部数据绑定到集合?它抱怨如果我没有指定url属性,但我没有真正考虑到URL – 我计划通过Ajax绑定数据.
>我应该用JSON而不是CSV重新渲染我的数据,并使用Collection的url属性来加载它吗?
我只是尝试将数据直接加载到Collection中,而不是通过url属性:
var Cat = Backbone.Model.extend({});
var CatCollection = Backbone.Collection.extend({
model: Cat
});
var ajaxData = { 'breed' : 'persian' } // simple example of external data
var catCollection = new CatCollection(ajaxData);
catCollection.fetch();
解决方法:
使用在别处创建的数组初始化/重置集合,而不使用集合的fetch方法
var ajaxData = [{ 'breed' : 'persian' }]; // Backbone.Collection expects an array
var catCollection = new CatCollection(ajaxData);
// catCollection.fetch(); fetch will try to update the data from the server
或使用内置的url / parse来构建模型
var CatCollection = Backbone.Collection.extend({
model: Cat,
url: "your ajax source",
parse: function (csv) {
//convert your csv in an array of objects
return csvtoarray;
},
fetch: function (options) {
options = options || {};
options.dataType = "text";
return Backbone.Collection.prototype.fetch.call(this, options);
}
});
var catCollection = new CatCollection();
catCollection.fetch();
将数据服务器端转换为JSON可能比尝试在JS中编写CSV解析器更容易.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。