Parsing JSON file and storing into Backbone Collection, Error: __ is undefined
Parsing JSON file and storing into Backbone Collection, Error: __ is undefined
我正在使用 getJSON 解析 JSON 文件并将结果存储在模型数组中。之后,我将这个模型数组放入一个名为 data 的集合中。
var DataArray = [];
var url = 'file.json';
$.getJSON(url, function (json) {
for (var i = 0; i < json.var.length; i++) {
var VarSamp = new DataModel();
for (var j = 0; j < json.var[i].vartwo.length; j++) {
VarSamp.set({'attr_1': json.var[i].attribute1});
VarSamp.set({'attr_2': json.var[i].attribute2});
VarSamp.set({'attr_3': json.var[i].vartwo[j].attribute3});
DataArray.push(VarSamp);
}
}
});
var data = new DataCollection(DataArray);
console.log(data);
然后尝试从视图访问我的集合时,我收到错误:类型错误:'data' 未定义。
这是我的观点:
var dataCollectionView = Backbone.View.extend({
el: '.content',
initialize:function(){
this.render();
},
render: function () {
var source = $('#view-temp').html();
var template = Handlebars.compile(source);
var html = template(data.toJSON());
this.$el.html(html);
}
});
解决方案是将 data
传递到您的视图中。
var view = new dataCollectionView({collection: data});
其次是
initialize: function(options) {
this.render(options.collection);
}
我正在使用 getJSON 解析 JSON 文件并将结果存储在模型数组中。之后,我将这个模型数组放入一个名为 data 的集合中。
var DataArray = [];
var url = 'file.json';
$.getJSON(url, function (json) {
for (var i = 0; i < json.var.length; i++) {
var VarSamp = new DataModel();
for (var j = 0; j < json.var[i].vartwo.length; j++) {
VarSamp.set({'attr_1': json.var[i].attribute1});
VarSamp.set({'attr_2': json.var[i].attribute2});
VarSamp.set({'attr_3': json.var[i].vartwo[j].attribute3});
DataArray.push(VarSamp);
}
}
});
var data = new DataCollection(DataArray);
console.log(data);
然后尝试从视图访问我的集合时,我收到错误:类型错误:'data' 未定义。
这是我的观点:
var dataCollectionView = Backbone.View.extend({
el: '.content',
initialize:function(){
this.render();
},
render: function () {
var source = $('#view-temp').html();
var template = Handlebars.compile(source);
var html = template(data.toJSON());
this.$el.html(html);
}
});
解决方案是将 data
传递到您的视图中。
var view = new dataCollectionView({collection: data});
其次是
initialize: function(options) {
this.render(options.collection);
}