2013-07-27 1 views
0

내 모델은 다음과 같습니다Backbone.js 모델로 서버에 쿼리 할 수 ​​있습니까?

var Item = Backbone.Model.extend({ 
    urlRoot: '/item/ajax_get' 
    }); 

나는 데이터베이스에서 특정 항목을 얻고 싶다면, 내가 할 수있는 : item = new Item({id: 11});

하지만 무엇을 내가 항목의 id을 모른다면 그 가져오고 싶니? 대신 AJAX를 통해 데이터베이스에 쿼리하여 item을 가장 최근에 얻으려고 timestamp으로 정렬합니다. Backbone.js로 가능합니까?

+0

되지 않음에 다음 코드 같은 것을 가질 것 의미

GET /items/?count=1&sortBy=timestamp&order=descending 

같은 것을 의미합니다. 일부 AJAX 함수로 호출 할 수있는 서버 측 코드가 필요합니다 ... –

+0

서버 측 코드를 처리 할 수 ​​있습니다. 백본과 함께 작동시키는 방법을 모르겠습니다. – Shamoon

답변

3

Backbone.js는 RESTful API 용으로 설계되었으므로 찾고자하는 것은 타임 스탬프로 내림차순으로 정렬 된 컬렉션의 첫 번째 항목입니다. 즉 당신이보고있는 것은 당신이 backbone.js 만 백본과

var Item = Backbone.Model.extend({ 
}); 

var ItemCollection = Backbone.Collection.extend({ 
    model: Item, 
    url: '/items/' 
}); 

var collection = new ItemCollection(); 

collection.fetch({ 
    data: { 
    count: 1, 
    sortBy: 'timestamp', 
    order: 'descending' 
    } 
}).then(function() { 
    var myItem = collection.models[0]; 
}, function (error) { 
    console.log(error); 
}); 
+0

POST 대신 도망? – Shamoon

+2

'GET'대신 'POST'로 보내면 안심할 수 없습니다. Backbone.js는 새로 생성 된 항목을 저장하기 위해'POST'를 사용합니다. AFAIK 당신은 jQuery XHR을 직접 사용해야합니다. 즉, 모델의'fetch' 메소드를 커스텀으로 덮어 씁니다. – quinnirill