2012-08-25 2 views

답변

2

또한 컬렉션에서 모델을 제거해야합니다.

var model = list.get('01'); 
model.destroy(); 
list.remove(model); 
2

허용되는 답변에 대한 예약이 있습니다. 모델이 파괴되면 "파괴"이벤트는 모델이있는 모든 콜렉션을 통해 버블 링됩니다. 따라서 모델을 제거 할 때 목록에서 모델을 제거하지 않아도됩니다.

model.destroy(); 

충분해야합니다.

코드를 보면 그것은 올바른 같습니다

list.get('01').destroy(); 

당신이 당신의 자원이 제대로 파괴지고 있음을 확신 (의도, 제거 + 파괴 단지 제거하지 않는 경우)? destroy() 호출에 성공 및 오류 콜백을 배치하여 파괴가 실행되었는지 확인하려고 했습니까? 예를 들어, 모델 URL이 올바르지 않고 리소스에 액세스 할 수없는 경우 파괴 호출은 오류를 반환하고 컬렉션에는 여전히 모델이 있습니다. 이것은 귀하의 질문에 윤곽을 그리는 증상을 나타냅니다.

파괴 호출 후에 remove()를 삽입하면 컬렉션이 모델을 확실히 제거합니다. 그러나 그 모델은 여전히 ​​떠돌아 다니고 있습니다 (여전히 지속됩니다). 이것은 당신이 원하는 것일 수도 있지만 destroy()를 호출하고 있기 때문에 당신이 그것을 완전히 지우고 싶다고 가정하고 있습니다. 이 경우 제거가 작동하는 것처럼 보이지만 실제로 수행중인 작업은 실제로 모델이 삭제되었을 때 모델이 삭제 된 것입니다.

따라서, 실제로 느낌이 들었습니다. 뭔가가 모델이 파괴되는 것을 막고 있습니다. 그래서 destroy()를 호출 한 다음 컬렉션을 확인하십시오. 모델이 아직 남아 있습니다.

나는 잘못 될 수 있습니다. 이것을 확인하고 결과를 업데이트 할 수 있습니까?

관련 문제