2013-08-05 127 views
2

我是第一次進入Backbone的新手網頁開發人員。我一直在努力的一個主要問題(實際上花了很多最後2天的研究無濟於事)是Backbone與服務器的通信方式。用Backbone.js與服務器通信

在我以前的項目中,我可以使用PHP和jQuery的$.getJSON方法從我的數據庫中獲取數據。當我使用Backbone時,我也能夠做到這一點(例如,myCollection.url = "todos.php")。然而,在我看過的每一個教程,文檔,示例代碼中,集合的url總是設置爲一個目錄,urlRoot是目錄/ id(例如myCollection.url = "/todos"myModel.urlRoot = "/todos/5"

我的問題是這是否被管理?它似乎比我通過添加GET參數到我的呼叫所做的傳統方式更清潔。起初我以爲這是路由,但這似乎只與設置瀏覽器歷史記錄和東西有關。我看過的源代碼使用SLIM PHP和Rails(我都沒有使用它),但我不知道任何部分如何組合在一起。

+0

骨幹預計一RESTful API返回JSON響應。你熟悉REST嗎? –

回答

5

主幹網有自己的與服務器通信的API,例如取,保存,去除。實際上,這些方法與w相同ith jQuery的$ .ajax。例如,您可以使用骨幹取這樣:

var UserModel = Backbone.Model.extend({  
    url : "rootURL/user", 
}); 
var user = new UserModel; 
user.fetch(
    data:{ 
     userId : 1,   //the webservice will be: rootURL/user?userId=1 GET; 
    } 
    success:function(model, response, options){ 
     //callback 
    }, 
    error:function(model, response, options){ 
     //callback 
    }, 
); 

但你也可以用同樣的方法在jQuery來在骨幹application.For例如與服務器進行通信:

var UserView = Backbone.View.extend({ 
    render: function(){ 
     //do something 
    } 
    getUser: function(userId){  
     $.get("rootURL/user", 
      { userId : userId}, 
      success:function(data){ 
       //callback 
      } 
     ); 
    } 
});