0

アプリケーション全体をシングルページアプリケーションに書き直さずにBackbone.js(または他のMV * JSフレームワーク)を使用するための最良のアプローチは何でしょうか。JSとAPIを使用してCRUD操作を処理したいのですが、古いナビゲーションリンクは保持しています。

ユーザーが/venuesに移動すると、ページを離れることなく、会場に関連するCRUDを実行できます。

スパがたくさんあるようなものだと思います。

バックボーン(または他のJSフレームワーク)をモジュール化して、各ページで必要なモジュールのみをトリガーできるようにする方法。

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

4

3 に答える 3

2

私はこのようなバックボーンをさまざまなケースで使用しています。私は最終的に:

  • ルーターを無視
  • ビューとモジュールは、便利なメソッドが組み込まれた単なる JS 辞書です。
  • コレクションは強化された配列です

後はJavaScriptを書くだけ!

于 2013-02-19T20:30:40.813 に答える
1

@dormisher に似たアプローチを使用しました。

オプション1

MyApplicationモデル、ビューなどのプレースホルダー オブジェクトを含むオブジェクトを作成します。

var MyApplication = {
  Models: {},
  Views: {},
  Collections: {},
  Routers: {},
  initFirstApp: function() {
    new MyApplication.Routers.FirstRouter();
    Backbone.history.start();
  },
  initSecondApp: function() {
    // similar to above...
  }
};

MyApplicationオブジェクトを拡張して、モデル、ビューなどを定義します。

var MyApplication.Routers.FirstRouter = Backbone.Router.extend({ ... });

次に、FirstApp を実行したいときにのみ読み込まれる js ファイルがあると仮定して、MyApplication.initFirstApp().

(もちろん、@dormisher のコード サンプルが示すように、バックボーン コンストラクトをアプリケーションごとに整理し、それぞれにinitorstartメソッドを与えることもできます。)

オプション 2

もう 1 つのオプションは、すべてのバックボーン主導のページでインスタンス化できる共通のルーターを 1 つ持つことです。現在の URL が定義済みのルートと一致する場合、バックボーンが自動的に引き継ぎます。各ページに 1 つのルートしかない場合 (つまり、各アプリケーションが SPA であり、サブルートがない場合) にのみ、このアプローチを使用することをお勧めします。

于 2013-02-19T20:19:34.530 に答える
0

私はいくつかのアプリケーションでこのアプローチを使用しました。現在、サイトのセクションを書き直し、サイトのメイン ナビゲーション セクションごとに小さなバックボーン アプリケーションを多数作成しています。

当たり前のように思えますが、私が行ったのは、セクションごとに 1 つのスクリプト ファイルを作成しただけです。users.jsしたがって、サイトのユーザー セクションには、このセクションで使用されるすべてのビュー/モデル/ルーターなどを含むという名前の js ファイルがあります。基本ビューのように共有されるもの、またはファイルと共に含まれる共有 js ファイルに含まれるものusers.js。このようにして、すべてがまとめられて見つけやすくなり、ページの読み込み時にサーバーにいくつかのリクエストを行うだけです。

組織を改善するために、名前空間のような JSON オブジェクトにもすべてを保存するため、次のようなグローバル JSON オブジェクトを作成します。

var MyApplication = {
  Users: {
    Views: {}, // all backbone views go in here
    Models: {} // all models go here
    // routers etc
  }
}

本当にシンプルですが、あなたは古い公理を知っています。

于 2013-02-19T16:15:28.620 に答える