2016-12-02 4 views
-1

내 Backbone.js 응용 프로그램에서 사용하기 위해 REST API에서 데이터를 가져 오는 프로세스 중간에 있습니다. 이 시점에서 나는 반환 된 데이터가 배열이라는 사실을 제외하고는 데이터를 조작 할 필요가 없다. 그러나 장래에 이러한 요청이있을 수 있으므로이 유형의 데이터에 대한 백본 모델 및 컬렉션을 이미 만들었습니다.백본 어레이 데이터 구성에 대한 조언

Array 데이터를 백본 컬렉션의 개체에 매핑 할 수 있지만 이미 백본 모델의 각 요소를 매핑하는 것이 더 나은 방법이라면 이미 모델이 있으므로 궁금합니다. .

저는 Backbone.js 프레임 워크의 전문가가 아니기 때문에,이 섹션에 대한 더 많은 문서와 링크는 크게 감사하겠습니다.

업데이트 : 실제로 BackboneJS 프레임 워크에서 제공하는 구문 분석 방법을 찾고있었습니다. parse 함수에서 Array를 Object로 변환하면이 문제를 해결할 수있었습니다. parse 메소드를 사용하여 수행하려는 모든 종류의 변환을 구문 분석 할 수 있습니다. 복사 등 더 많은 정보 속성을 수정, 속성 : http://backbonejs.org/#Collection-parse

+1

어레이 데이터를 백본 컬렉션 내부의 객체에 _map하는 것이 무엇인지, 작업중인 데이터의 형식을 제공 할 수 있는지 또는 이와 동등한 것인지 – mikeapr4

+0

이 시점에서 내 데이터는 내 API에서 배열 : [ 'item1', 'item2', 'item3'] 나는 [여기]를 발견했다 (http://stackoverflow.com/questions/31556954/how-to-convert-an-array-to-collection-in-backbone) 내 배열을 객체에 매핑해야했습니다. –

답변

1

단지에서와 question 당신이 언급 한이 컬렉션 또는 모델에 하나, parse을 사용하여 달성 할 수 있습니다. 위의 예에서

var UserModel = Backbone.Model.extend({ 
 

 
    // String name is mapped to an object with the name property 
 
    parse: function(name) { 
 
    return { 
 
     name: name 
 
    }; 
 
    } 
 
}); 
 

 
var UserCollection = Backbone.Collection.extend({ 
 
    model: UserModel 
 
}); 
 

 
var collection = new UserCollection(['Ann', 'Joe', 'Jim', 'Bob'], {parse: true}); 
 
console.log(collection.at(0).get('name'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>
는 컬렉션 parse 기본적으로 실행되지 않습니다,이 경우, 데이터 인스턴스화되고, 그래서 그러나이 경우 옵션에서 설정해야합니다 수집은 일반적으로 fetch에서 데이터를 가져옵니다. 기본적으로 항상 파싱됩니다.

+0

고마워요, 제 질문에 대한 답변이었습니다. –