我有一个Backbonejs(BB)项目设置。我有运行服务器端代码的Fat Free Framework(F3)。在我问这个问题时,请记住我只是学习这两个web开发工具:BB路由器何时进行任何路由?我在网页中有一个链接与BB路由器中的路由匹配,但F3路由器一直试图处理它并失败。这两个路由器如何协同工作而不会干扰?
非常感谢你的帮助。
答案 0 :(得分:0)
如果您没有使用pushState,那么主干路由很容易与服务器路由区分开来:
哈希之前的部分是传输到服务器的部分(F3路由)。散列后的部分对应于骨干路由。
//F3 routing
$f3->route('GET /route1',…)
$f3->route('GET /route2',…)
//Backbone routing
routes: {
"route/a": "routeA",
"route/b": "routeB",
}
请注意,Backbone路由器不会向服务器生成任何HTTP请求(除非您明确定义它)。
自动生成HTTP请求的是Backbone模型。使用urlRoot
将骨干模型映射到服务器资源。然后将方法fetch()
,save()
和destroy()
分别映射到GET,PUT和DELETE HTTP方法。
检查此示例:
userModel = Backbone.Model.extend({
urlRoot: '/user'
});
var user=new userModel({id:123});
user.fetch();// GET /user/123
user.save();// PUT /user/123
user.destroy();// DELETE /user/123
在服务器端,您可以轻松映射User类,如下所示:
$f3->map('/user/@id','User');
class User {
function get($f3,$args){…}
function put($f3,$args){…}
function delete($f3,$args){…}
}