5

私が使用しているフレームワークは次のとおりです。

  • Codeigniter
  • Codeigniter REST API
  • Require.js
  • Backbone.js

アプリの実行:

  • htaccessファイルは、Codeigniterindex.phpファイルを介してすべてをリダイレクトします。
  • Codeigniterには、「スタート」コントローラーを呼び出すためのデフォルトルート設定があります。
  • スタートコントローラーはスタートビュー(Codeigniterの唯一のビュー)を呼び出します。
  • スタートビューはウェブサイト全体のテンプレートを保持し、Require.jsを開始するための呼び出しを行います
  • Require.jsはバックボーンを起動し、アプリは期待どおりに動作します。

問題:他のバックボーンビューへのルーティング:

  • 次に、バックボーンを介して他のバックボーンの「ビュー」にルーティングします。
  • 問題は、HREFに「localhost / otherPage」のようなリンクを提供しようとすると、htaccessファイルが起動し、Codeigniterがそのコントローラーを見つけようとし、Codeigniterによって生成された404を取得することです。
  • `app.navigate(" otherPage "、{trigger:true});`を使用してHREFではなくバックボーンでルートを強制しようとしましたが、Codeigniterによって生成されたのと同じ404エラーが発生します。

私はどの方向に進むべきですか:

  • 引き続きCodeigniterをそのRESTFULAPI、モデル、およびいくつかの特別な検証機能に使用したいと思います。
  • フロントエンドでBackboneとRequireも使用したいと思います。
  • htacessリダイレクトをRequireとBackboneを起動するindex.htmlファイルに変更できますか?このアプローチを使用した場合でも、Codeigniter RESTFUL APIコントローラーは適切に起動しますか?
  • Codeigniterでページごとにビューを作成し、各ページでビューごとに新しいRequire + Backboneを開始しますか?
  • 間もなくNode.jsを調べます。フレームワークのCodeigniterの側面をゴミ箱に捨てて、Node.jsを完全に使いこなす必要がありますか?

どんなガイダンスでも大歓迎です。

4

2 に答える 2

2

まだ行っていない場合は、ハッシュタグの変更(通常の動作、pushState:false)を介してバックボーン経由でルーティングすることをお勧めします。ハッシュタグを変更してもサーバー呼び出しが発生せず、Codeigniterのルーターが無視されるためです。あなたの例では、 localhost /#otherPage
に移動したいと思うでしょう。 次に、CodeigniterのルーターをajaxREST呼び出しに使用します。

于 2013-03-28T16:32:54.400 に答える
1

ブラウザがHREFリンクを使用してhttpリクエストを送信しないようにする別の方法は、javascriptとjqueryでオーバーライドすることです。Loamhoofが提案したように常にハッシュタグを使用したくない場合に便利です。

例:

$('#linkID').on('click', function(event) {

    event.preventDefault();

    backboneRouter.navigate($(event.currentTarget).attr('href'), { trigger:true });

});
于 2013-04-03T14:29:51.690 に答える