2012-08-24 2 views
3

백본 컬렉션을 사용하여 데이터베이스를 쿼리해야합니다. 나는 이것을 어떻게하는지 모른다. 나는 어딘가에 URL을 설정할 필요가 있다고 생각하지만, 나는 그것이 어디에 있는지 모른다. 나는 이것이 매우 기본적인 질문 일 것임에 틀림없지 만 사과하지만, CodeSchool.com에서 백본 과정을 밟았으며 아직도 어디서부터 시작해야할지 모른다. 백본 컬렉션이있는 데이터베이스 쿼리

내가 수집이 코드입니다 :

var NewCollection = Backbone.Collection.extend({ 

    //INITIALIZE 

    initialize: function(){ 

     _.bindAll(this); 

     // Bind global events 

     global_event_hub.bind('refresh_collection', this.on_request_refresh_collection); 

    } 

    // On refresh collection event 

    on_request_refresh_collection: function(query_args){ 

     // This is where I am lost. I do not know how to take the "query_args" 

     // and use them to query the server and refresh the collection <------ 

    } 

}) 
+0

동기화 방법에 대한 공식 Backbone 설명서를 읽어 보시기 바랍니다. [link] (http://backbonejs.org/#Sync) – Ingro

답변

4

간단한 대답은 당신이 그렇게처럼 Backbone.Collection에 URL 속성 또는 함수를 정의 할 수 있습니다 :

initialize: function() { 
    // Code 
}, 
on_request_refresh_collection: function() { 
    // Code 
}, 
url: 'myURL/whateverItIs' 

OR

url: function() { 
    return 'moreComplex/' + whateverID + '/orWhatever/' + youWant; 
} 

URL 기능을 정의한 후에를 실행하면됩니다.을 사용하고 URL을 설정하는 모든 것을 사용합니다.

편집 ------- 당신이 URL을 설정하면 그래서 당신은 쉽게 네이티브 fetch() 방법을 사용하여 쿼리를 만들 수 있습니다 컬렉션 쿼리

만들기.

userCollection.fetch({ 
    data: { 
     queryTerms: arrayOfTerms[], // Or whatever you want to send 
     page: userCollection.page, // Pagination data 
     length: userCollection.length // How many per page data 
     // The above are all just examples. You can make up your own data.properties 
    }, 
    success: function() { 
    }, 
    error: function() { 
    } 
}); 

를 그런 다음 단절의 끝에 당신이 요청의 매개 변수를 얻을 수 있는지 확인하려면 단지 것 :

fetch()

당신과 같이 서버에 쿼리 인수를 보낼 수 있습니다 data:{}라는 옵션을합니다 및 voila.

+0

url 기능의 두 번째 옵션이 작동합니다. 그러나 나는 첫번째 것에 대해 확실하지 않다. –

+0

두 번째 옵션에서 수행하는 것처럼 매개 변수를 보내는 방법 –

+2

요약하면 url.property 또는 url.function()을 사용하여 컬렉션이 가리키는 위치를 가리킬 수 있습니다. 매개 변수 등을 사용하는 새 함수를 작성하는 대신 collection.fetch() 메서드에서 data : {} 옵션을 사용하여 원하는 모든 쿼리 arg를 전달하면됩니다. 가장 일반적인 유형의 문제의 경우 Backbone은 문서를 잘 살펴 보았습니다. 그것들은 코드 라이브러리에 관해서 내가 읽은 가장 쉽고 즐거운 문서 중 하나입니다. – jmk2142