0

Backbonejs (BB) プロジェクトをセットアップしています。サーバー側コード用に Fat Free Framework (F3) を実行しています。これを尋ねるとき、私は次の 2 つの Web 開発ツールを学習していることを覚えておいてください: BB ルーターはいつルーティングを行いますか? Web ページに BB ルーターのルートに一致するリンクがありますが、F3 ルーターはそれを処理しようとして失敗し続けます。これら 2 つのルーターはどのように連携し、干渉しないのでしょうか?

どうもありがとうございました。

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",
}

バックボーン ルーターは、サーバーへの HTTP 要求を生成しないことに注意してください (もちろん、特に定義しない限り)。

HTTP リクエストを自動的に生成するのがバックボーン モデルです。バックボーン モデルは、 を使用してサーバー リソースにマップされます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 に答える