2013-08-05 55 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 
      } 
     ); 
    } 
});