我是一名网络开发新手,第一次接触 Backbone。我一直在努力解决的一个主要问题(实际上过去 2 天花了很多时间研究但没有结果)是 Backbone 与服务器到底是如何通信的。
在我之前的项目中,我已经能够使用 PHP 和 jQuery 的 $.getJSON
方法从数据库中获取数据。当我使用 Backbone 时,我也可以执行此操作(例如 myCollection.url = "todos.php"
)。然而,在我看过的每一个教程、文档、示例代码中,集合的 url 始终设置为目录,urlRoot 是目录/id(例如 myCollection.url = "/todos"
和 myModel.urlRoot = "/todos/5"
。
我的问题是这到底是如何管理的?它看起来比我在调用中添加 GET 参数的传统方式干净得多。起初我以为这是路由,但这似乎只与设置浏览器历史记录之类的东西有关。我看过的一些源代码使用了 SLIM PHP 和 Rails(我都没有使用过),但我不知道这些部分是如何组合在一起的。
最佳答案
Backbone 有自己的 api 用于与服务器通信,例如 fetch、save、destory。事实上,这些方法与 jQuery 的 $.ajax 做同样的事情。例如,您可以这样使用backbone的fetch:
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 相同的方式与主干应用程序中的服务器进行通信。例如:
var UserView = Backbone.View.extend({
render: function(){
//do something
}
getUser: function(userId){
$.get("rootURL/user",
{ userId : userId},
success:function(data){
//callback
}
);
}
});
关于php - 使用 Backbone.js 与服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18049497/