2016-10-12 3 views
0

여러 모델과 뷰가있는 응용 프로그램을 구현했지만 컬렉션이 이해하기 까다로운 점이 있습니다. 지금까지 컬렉션을 사용하지 않고 목표를 달성했으며 이제 특성을 기반으로 일련의 모델을 조작해야합니다. 그리고 저는 지금 컬렉션이 필요하다고 확신합니다. 백본 컬렉션을 사용하여 모델을 필터링하는 방법

app.Connector=Backbone.Model.extend({ 
    line: //a d3 line object 
    source: //a d3 group 
    target: //a d3 group 
    // and some functions 
}); 

app.Set=Backbone.Collections.extend({ 
    model:app.Connector; 
    url:"/set" //what is the purpose of url? 
}); 

var set=new app.Set(); 
//multiple connectors are initialized 

가 나는 D3 객체 obj이 말 :

나는 (실제 구현보다 훨씬 간단합니다)은 다음과 같은 구조를 가지고있다. obj이있는 커넥터 목록/배열을 target으로 가져올 수 있습니까?

답변

2
var filtered = set.filter(d=>d.get('target') == obj) 

내가 너무 장황하기 위해 백본을 get 기능을 찾을 수 있습니다, 그래서 내가 필터링하기 전에 JSON으로 컬렉션을 변환하고 싶다.

var filtered = _.filter(set.toJSON(),d=>d.target == obj) 
+0

시도했지만 반환 된 배열이 비어 있습니다. https://jsfiddle.net/sachid/qko7vnxv/1/ – SachiDangalla

+1

https://jsfiddle.net/qko7vnxv/2/에서 JSfiddle을 확인하십시오. 모델을 작성한 다음 콜렉션을 작성했습니다. 모델을 컬렉션에 넣지 마십시오! –

+0

감사합니다. 마지막 질문 하나. 만약 모든'Connector'를 미리 초기화 된'Set'에 추가하고 싶다면, 모델의 초기화에서'set.add (this)'라고 잘못 말하는게 있습니까? – SachiDangalla

관련 문제