Jua*_*ado 2 django json backbone.js tastypie
我用Tastypie-Django编写了一个API,我想用Backbone做一个网页来更简单地访问模型.我在Backbone中创建了一个这样的Model和一个这样的集合:
var Abstract = Backbone.Model.extend({
defaults : {
}
});
var AbstractCollection = Backbone.Collection.extend({
model: Abstract,
url : "http://192.168.0.195/api/v1/abstract/?format=json"
});
Run Code Online (Sandbox Code Playgroud)
它在View中的fetch方法就像这样:
var abs = new PocketsAbstractCollection();
abs.fetch({
success: function (collection, response) {
console.log(abs.length);
console.log(abs.models);
}
});
Run Code Online (Sandbox Code Playgroud)
问题是我从这个表单收到一个JSON:
{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 12}, "objects": [{ ... }]}
Run Code Online (Sandbox Code Playgroud)
当我在属性中看到集合的模型时,我有2个元素,一个元素和一个带有元素的对象数组.如何访问"对象数组"元素?
如果我写abs.attributes这给我一个错误.
attributes: Object
meta: Object
objects: Array[12]
0: Object
1: Object
2: Object
3: Object
4: Object
.
.
.
length: 12
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?
谢谢!!
Backbone希望接收一个对象数组.
Tastypie返回"objects"属性下的对象数组.
将API响应操作为Backbone所需格式的推荐方法是通过集合的parse函数:
var AbstractCollection = Backbone.Collection.extend({
model: Abstract,
url : "http://192.168.0.195/api/v1/abstract/?format=json",
parse: function(response) {
return response.objects;
}
});
Run Code Online (Sandbox Code Playgroud)
你也可以使用Backbone-Tastypie'插件':https://github.com/PaulUithol/backbone-tastypie
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |