0

我有一个 Backbonejs (BB) 项目设置。我为服务器端代码运行了 Fat Free Framework (F3)。当我问这个问题时,请记住我只是在学习这两个 Web 开发工具:BB 路由器什么时候做任何路由?我在网页中有一个与 BB 路由器中的路由匹配的链接,但 F3 路由器一直在尝试处理它并失败。这两个路由器如何协同工作且互不干扰?

非常感谢你的帮助。

4

1 回答 1

0

如果您不使用 pushState,那么骨干路由很容易与服务器路由区分开来:

  • /路线1
  • /路线2
  • /route1#route/a
  • /route1#route/b

散列之前的部分是传输到服务器的部分(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){…}
}
于 2013-07-22T20:12:49.263 回答