Backbone.js 解析+;backbonejs
如何解析响应值。。 我想从json值中获取json值……但在解析中遇到问题Backbone.js 解析+;backbonejs,backbone.js,Backbone.js,如何解析响应值。。 我想从json值中获取json值……但在解析中遇到问题 var ListView = Backbone.View.extend({ el: '#app-container', initialize: function() { _.bindAll(this,"render"); console.log('ListView init.'); this.counter = 0; this.collec
var ListView = Backbone.View.extend({
el: '#app-container',
initialize: function() {
_.bindAll(this,"render");
console.log('ListView init.');
this.counter = 0;
this.collection = new FieldCollection();
this.collection;
this.render(this.collection);
},
events: {
'click #add': 'addItem'
},
render: function(val) {
console.log(val);
console.log('Render called.');
},
});
我的json如下所示
[
{
"name": "qqqqqqqqqqqqqqqqqqq",
"img": "qqqqqqqqqqqqqqqqqqqq"
},
{
"name": "eeeeeeeeeeeeeeeeeee",
"img": "eeeeeeeeeeeeeeeeeee"
},
{
"name": "ggggggggggggggggggg",
"img": "gggggggggggggggggggg"
}
]
我的问题是如何解析响应值
如何访问视图中的json值
var FieldCollection = Backbone.Collection.extend({
defaults: {
model: Field
},
model: Field,
url: 'http://localhost:8080/backbonejs/myjsoncollection.json',
initialize: function() {
console.log('FieldCollection init.');
},
parse: function(response) {
console.log(response);
return response;
}
});
这是全部代码
$(function(){
var Field = Backbone.Model.extend({
defaults: {
name: "shaleen",
img: "not found",
},
initialize: function() {
// console.log(this.attributes.name);
}
});
var FieldCollection = Backbone.Collection.extend({
defaults: {
model: Field
},
model: Field,
url: 'http://localhost:8080/backbonejs/myjsoncollection.json',
initialize: function() {
console.log('FieldCollection init.');
},
/* parse: function(response) {
console.log(response);
return response;
}*/
});
var ListView = Backbone.View.extend({
el: '#app-container',
initialize: function() {
_.bindAll(this,"render");
console.log('ListView init.');
this.counter = 0;
var jsonfield = new FieldCollection();
jsonfield.fetch();
this.render(jsonfield);
},
render:function(collection){
_.each(collection, function(model){
console.log(model.get('name'));
});
_.each(function(model){
console.log(model.get('name'));
console.log(model.get('img'));
},this);
}
});
var listView = new ListView();
})) 解析函数是可选的,如果从服务器接收数据后发生任何特殊情况,只需实现它。为了隔离可能的错误源,我将首先通过不连接服务器来简化您的方法。请运行以下代码:
var Field = Backbone.Model.extend({});
var FieldCollection = Backbone.Collection.extend({
model: Field,
});
var ListView = Backbone.View.extend({
el: '#app-container',
initialize: function() {
this.collection = new FieldCollection();
this.collection.add([{name:'name1',img:'img1'},{name:'name2',img:'img2'}]);
this.render(this.collection);
},
render(collection){
collection.each(function(model){
console.log(model.get('name')+' '+model.get('img'));
},this);
});
如果可行,请应用以下2项更改:
var FieldCollection = Backbone.Collection.extend({
model: Field,
url='http://localhost:8080/backbonejs/myjsoncollection.json'
});
initialize: function() {
this.collection = new FieldCollection();
this.collection.fetch();
this.render(this.collection);
},
请先运行简化版,如果这对扩展版有效。很抱歉,但请不要完全了解您要实现的目标以及您的问题所在。集合中的集合和模型不包含json数据,不需要解析。它们已经是java脚本对象了。我想从json文件中获取json数据…我是主干网新手,所以dnt不太了解abt模型和集合…从文件中获取数据的代码在哪里???尚不清楚您想做什么以及如何做Hanks schacki…我检查了我的代码…我忘了添加解析函数…再次查看帖子这就是我要找的..responseText:“[↵ { ↵ "名称“:“QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ,↵ “img”:“QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ↵ }, ↵ { ↵ “名称”:“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,↵ “img”:“EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE↵ }, ↵ { ↵ “姓名”:“gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg,↵ “img”:“gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg↵ } ↵]“这是我从集合中删除解析函数时得到的响应…如何修复此问题…您是否已设法使用呈现函数检查我的最新更新?您从未对集合进行过提取,因此将不会对服务器进行任何调用,也不会进行任何解析。我的最终建议:a)按照您执行的顺序提供完整代码。”n it和b)手动添加模型和模型内容,而无需转到服务器,这样我们就可以在向服务器端添加任何新的复杂性之前检查客户端,因此您可以执行以下操作:collection.add([{name:'…',img:'…}])