2012-09-27 2 views
2

Tastypie-Django를 사용하여 API를 작성 했으므로 백본을 사용하여 모델에보다 쉽게 ​​액세스 할 수있는 웹 페이지를 만들고 싶습니다. 나는 백본이 같은 모델 및 컬렉션을 만들었습니다Tastypie JSON의 백본 컬렉션 요소에 어떻게 액세스합니까?

var Abstract = Backbone.Model.extend({ 
    defaults : { 
    } 
}); 

var AbstractCollection = Backbone.Collection.extend({ 
    model: Abstract, 
    url : "http://192.168.0.195/api/v1/abstract/?format=json" 
}); 

는 IT가보기 위튼의 방법을 가져오고 그것은 다음과 같이이다 : 나는에서 JSON을받을 수

var abs = new PocketsAbstractCollection(); 
abs.fetch({ 
    success: function (collection, response) { 
     console.log(abs.length); 
     console.log(abs.models); 
     } 
}); 

그것의 문제 이 양식 : 나는 속성에서 컬렉션의 모델을 볼 때

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 12}, "objects": [{ ... }]} 

와 나는 2 개 요소, 메타와 성분을 가진 객체 배열이있다. 객체 배열 요소에 어떻게 액세스 할 수 있습니까?

abs.attributes를 작성하면 오류가 발생합니다.

attributes: Object 
    meta: Object 
    objects: Array[12] 
    0: Object 
    1: Object 
    2: Object 
    3: Object 
    4: Object 
    . 
    . 
    . 
    length: 12 

나를 도와 줄 사람이 있습니까?

감사합니다.

답변

7

백본은 개체 배열을 수신합니다.

Tastypie는 "objects"속성 아래에서 개체 배열을 반환합니다.

형식의 백본으로 API 응답을 조작하는 권장되는 방법이 원하는는 통해 컬렉션의 parse function :

var AbstractCollection = Backbone.Collection.extend({ 
    model: Abstract, 

    url : "http://192.168.0.195/api/v1/abstract/?format=json", 

    parse: function(response) { 
     return response.objects; 
    } 
}); 

또한 백본 - Tastypie '플러그인'사용할 수 있습니다 https://github.com/PaulUithol/backbone-tastypie

+0

감사합니다! 환상적인 솔루션입니다 !! 그것은 완벽하게 작동합니다 :) –

관련 문제