1

저는 backbonejs에 초보자이며 친구리스트를 가져 와서 표시하는 프로젝트를하고 있습니다. 이 프로젝트에서 나는 parse.com을 데이터베이스로 사용하고 있습니다. 그러나 나는이 시점에서 재고가있다.backbonejs - 복수 모델 가져 오기

예를 들면 다음과 같습니다. 사용자 및 친구 모델에 다음 데이터가 있습니다.

var user = [ 
{ 
    id: 'x1', 
    firstname: 'Ashik', 
    lastname: 'shrestha', 
    phone: '12321321', 
    mobile: '123213', 
    email: '[email protected]' 
}, 
{ 
    id: 'x2', 
    firstname: 'rokesh', 
    lastname: 'shrestha', 
    phone: '12321321', 
    mobile: '123213', 
    email: '[email protected]' 
}, 
]; 

var friends = [ 
{ 
    user_id: 'x1', 
    user_friend_id: 'x2' 
}, 
{ 
    user_id: 'x1', 
    user_friend_id: 'x4' 
}, 
{ 
    user_id: 'x1', 
    user_friend_id: 'x10' 
}, 
{ 
    user_id: 'x2', 
    user_friend_id: 'x25' 
} 

];

// 컬렉션 내가 원하는 것을 지금

var userCollection = Backbone.collection.extend({ 
model: user 
}); 

var friendListCollection = Backbone.collection.extend({ 
model: friends 
}); 

var friends = new friendListCollection(); 

?

친구 컬렉션 개체를 가져 오면 친구들의 세부 정보를 가진 친구 목록을 가져오고 싶습니다.

예 :

friends.fetch({ 
success: function(ob){ 
    var ob =ob.toJSON(); 
    // i want ob to be like 
    [ 

     { 
      id: 'x2', 
      firstname: 'rokesh', 
      lastname: 'shrestha', 
      phone: '12321321', 
      mobile: '123213', 
      email: '[email protected]' 
     }, 
     { 
      id: 'x4', 
      firstname: 'rokesh', 
      lastname: 'shrestha', 
      phone: '12321321', 
      mobile: '123213', 
      email: '[email protected]' 
     }, 
     { 
      id: 'xx10', 
      firstname: 'rokesh', 
      lastname: 'shrestha', 
      phone: '12321321', 
      mobile: '123213', 
      email: '[email protected]' 
     }, 
    ] 
    } 
}); 

내가 그들을 관련 새로운 컬렉션을 만들해야하거나이 작업을 수행하는 다른 방법이?

미리 감사드립니다.

답변

0

더 나은 성능을 얻고 서버 측에서 프리젠 테이션을 줄이기 위해 최소한의 서버 요청을 사용하려면이 논리를 클라이언트 측이 아닌 서버 측에 추가하는 것이 좋습니다. 예 : ?detail=true과 같은 매개 변수를 사용하여 가져 오는 경우 서버는 자세한 데이터가 포함 된 간단한 정보를 반환하고 그렇지 않으면 간단한 정보 만 반환합니다.

다른 Collection으로 분리해야하는 이유가 있다면, 결과적으로 그 콜렉션을 가져와야합니다.

0

데이터 구조를 변경하지 않으려는 경우 BackboneJS의 모델의 idAttribute 속성을 사용하여 컬렉션에서 특정 키, 일반적으로 "id"로 특정 모델을 검색 할 수 있습니다.

모델을 정의 할 때 모델에 대해 idAttribute을 정의해야합니다. 나중에이 필드의 값으로 컬렉션에서 모델에 액세스 할 수 있습니다.

백본 컬렉션이 동기화되면 모든 모델이 정의 된 구조에 따라 구문 분석되고 데이터 위에 관리 기능이 추가됩니다. 모델의 idAttribute 수

var myModelFromMyCollection = myCollection.get(id); 

의 : myCollection 하나 이상의 "myModel"(들)을 보유하고

var myModel = Backbone.Model.extend({ 
    idAttribute: "id" 
    ... 
}); 

var myCollection = Backbone.Collection.extend({ 
    model: myModel 
    ... 
}); 

후에는 단순히 다음을 사용할 수 있습니다

는 다음과 같은 예를 생각해 모델의 필드 중 어떤 것인가 ...

사용 사례에 따라 friendListCollection과 userCollection을 이미 사용할 수 있으며 모델을 가지고 있다고 가정 할 때 다음과 같은 점을 고려하십시오. 친구의 전체 세부 정보를 얻으려면 다음과 같은 사용자 모델을 사용하십시오.

friendListCollection.each(function(friendModel) { 
    var friendFullDetailsFromUsersCollection = userCollection.get(friendModel.id); 
    console.log(friendFullDetailsFromUsersCollection); 
    ... 
    });