2013-07-27 42 views
0

我的模型看起來像這樣:我可以使用Backbone.js模型查詢服務器嗎?

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

如果我想從數據庫中的特定項目,我可以這樣做:item = new Item({id: 11});

但如果我不知道該項目的id那我想取?相反,我想查詢數據庫(通過AJAX)以獲取排序爲timestamp的最新item。這可能與Backbone.js?

+0

不只有骨幹類似下面的代碼。你需要一些服務器端代碼,這些代碼可以通過一些AJAX函數調用... –

+0

我可以處理服務器端代碼,只是不知道如何使它與Backbone一起工作 – Shamoon

回答

3

Backbone.js是爲RESTful API設計的,因此在這些術語中,您要查找的是按時間戳降序排列的第一個集合。這意味着你正在看什麼是一樣的東西

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

這意味着你必須在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

發送它作爲'POST'而不是'GET'不是很安靜; Backbone.js使用'POST'來保存新創建的項目。 AFAIK你將不得不直接使用jQuery XHR,即用自定義的東西覆蓋模型的'fetch'方法。 – quinnirill

相關問題