** JSON数据**
{
"data" : [{
"book" : "first book", -- > i want this via model.get('book');
"aurthor" : "xyz"
}
]
}
**使用jquery Ajax获取json数据。 **
var jsonData = {};
$.ajax({
url : 'booklist.json',
async : false,
dataType : 'json',
success : function (json) {
jsonData = json.data;
}
});
**这里的模型声明**
var MyModels = Backbone.Model.extend({
initialize : function () {},
defaults : {}
});
var modelinstance = new MyModels(jsonData);
modelinstance.get('book'); // it is giving undefined how can i get this value.
**请帮助我做错的地方。我是Backbone的新手。 **
答案 0 :(得分:4)
如果数据总是包含这样的单个对象,那么您只需在模式中添加parse
method:
解析
只要服务器返回模型的数据, fetch 和 save ,就会调用解析。该函数传递原始model.parse(response, options)
response
对象,并应在模型上返回属性hash set 。
这样的事情:
parse: function(response) {
return response.data[0];
}
您还可以使用parse
选项通过model constructor触发parse: true
来电:
构造函数/初始化
new Model([attributes], [options])
[...]
如果{parse: true}
作为选项传递,属性将首先由解析转换,然后才能设置在模型上。
因此,如果您通过$.ajax
电话手动加载数据,那么您将拥有以下内容:
success: function (json) {
var m = new MyModel(json, { parse: true });
// Do something with m...
}