2012-04-18 3 views
1

Backbone.js로 첫 걸음을 내딛겠습니다. 그 중 하나는 컬렉션에서 항목을 제거 할 수 있으며, 더 중요한 것은 해당 항목을 검색 할 수 있다는 것입니다. 순간 나는 제거하기 전에 원하는 항목에 대한 참조를 얻을 수있어 있도록 Backbone.Collection.remove 방법은 간단하게 제거 항목과 원래의 컬렉션을 반환 :Backbone.Collection.remove (n)에서 요소 검색

var Collection = Backbone.Collection.extend(...array of Backbone.Models...), 
    removedItem = Collection.get(3); 
console.log(Collection.remove(3));//same collection sans #3 

짧은이 있다면 내 질문은 제거 항목을 검색하기위한 손 방법?

편집 : JFTR, 나는 소스의 공정한 조금을 읽고, 원래의 방법은 컬렉션에 대한 참조를 반환한다는 것을 알고 한 -

remove: function(models, options) { 
    // <snip for brevity> 
    // chain pattern incoming 
    return this; 
}, 

반환하지 않은 나에게 이상한 듯를 삭제 된 항목입니다. 그래서 내가 누락 된 또 다른 방법이 있거나이 패턴을 달성하는 일반적인 방법이 있는지 궁금합니다. API에 몇 가지 비밀 doohickey가있을 때 긴 해결 방법을 사용했던 것은 처음이 아닐 것입니다. 슬리브가 될 것입니다 ... 아마도 클래스를 확장 할 것입니다.

답변

1

Backbone.Collection 'type'에 함수를 추가하고 만든 모든 컬렉션에서 removeModel을 사용할 수 있습니다.

Backbone.Collection.prototype.removeModel(model) { 
    var _model = this.get(model); 
    this.remove(item); 
    return _model; 
} 

var removedModel = collection.removeModel(model); 
+0

저는이 작업을 수행하는 데 어려움을 겪었습니다. http://stackoverflow.com/questions/12895176/extending-backbone-collection-prototype – sunwukung