2012-02-08 4 views
3

나는 많은 특성을 가진 모델을 가지고 있습니다. 여기에 관심있는 모델은 idkey입니다. key은 항상 고유하므로 id이 아닙니다.백본 컬렉션에 모델을 추가 할 수 없습니다.

Uncaught Error: Can't add the same model to a collection twice 

내가 백본이 두 모델은 ===을 경우 결정하는 id을 사용하고 있기 때문에이 추측하고있다 : 나는 컬렉션에 같은 id 둘 이상의 모델을 추가 할 때,이 오류가 발생합니다. 그 맞습니까? 그렇다면 idkey 속성의 이름을 바꾸지 않고이 동작을 재정의 할 수있는 방법이 있습니까? 나는 그 컬렉션의 comparator으로 어리석은 시도를했지만 전혀 쓸모가 없습니다.

+0

가능한 중복 : http://stackoverflow.com/questions/6724025/backbone-js-cant-add-the-same-model-to-a-set-twice –

+0

에 http : // 유래 .com/questions/6724025/backbone-js-cant-add-the-same-model-to-a-set-twice 두 번 –

답변

8

예, 백본은 식별을 위해 모델의 id 속성을 사용하고 관리합니다. 당신은 아무것도에 대한 모델의 id 속성을 사용할 수 없습니다 그러나

var Entry = Backbone.Model.extend({ 
    idAttribute: "key" 
}); 

var entry = new Entry({ key: 1, name: "an entry" }); 
alert("entry id: " + entry.id); 

: 데이터가 다른 속성을 사용하는 경우, 모델의 idAttribute 백본을 할 재산의 이름이 속성의 ID를 읽을 설정할 수 있습니다 동시.

+0

정확히 내가 알아야 할 필요가있는, 고마워. – Matthew

0

백본은 그냥 제거, 당신이 정말로 수집에 같은 모델을 삽입 할 경우 라인 676 700

을 일렬로 backbone.js에서 볼 수 있습니다 ... 하나 개의 모음으로 같은 모델을 삽입 할 우리를 방지 코드가

if(existing = this.get(model)){//here 
     ... 
} 
관련 문제