0

そのため、アプリにルーティングを実装しようとしています。これが私がやろうとしていることのサンプルjsFiddleです: http://jsfiddle.net/GeorgiAngelov/9yN3Z/114/

これまでのところ、すべてが正常に機能しており、セクションを移動するにつれて、ルーティングが変更され、すべてが正常に機能しています。

問題は次のとおりです。ローカル ホストのように URL バーにセクション ID を手動で入力すると、次のようになります。 /section/s-3 s-1 にリダイレクトされ、ページが更新され、セクションとルートがすべて失われます。これまでに追加しました。機能することもあれば、そのようにセクションを切り替えることもできますが、更新されることもあり、Enter を 2 回クリックすると発生します。

これは奇妙な問題であり、どうすればデバッグできるかわかりません。これが私の実際のルーティング サービスです。

app.config(function ($routeProvider) {
        $routeProvider
      .when('/', {
        redirectTo: '/section/1',
        templateUrl: '/tpl.html',
      })
      .when('/section/:sectionId', {
        templateUrl: '/tpl.html',
      })
      .otherwise({
        redirectTo: '/'
      });    
  });
4

2 に答える 2

0

私はあなたのアプリケーションを観察しましたが、私の観点からは、DOM オブジェクトをビューに追加するのに、jquery テンプレートのような奇妙な方法を使用しています。実際には、セクション内をクリックするたびに、異なるスコープを使用し、スコープにルートを追加しているため、他のユーザーには表示されません。代わりに、コントローラー間で共有されるサービスを使用する必要があります。この方法では、サービスのみにすべてのセクションが含まれ、すべてのルーツ: angularjs サービス

後でjsfiddleを更新します。これが今のところ役立つことを願っています。

于 2013-07-19T16:08:41.363 に答える
0

あなたのアプリを chrome と firefox でテストしました。クロムを使用して、URL を選択して Enter キーを押すと (変更せずに) ページがリロードされるため、Enter キーを 2 回押すと常にページが更新されます。Firefox を使用すると、これは発生しないため、FF ではこの問題は発生しないようです (ただし、ユーザーは更新ボタンを直接押すことができます)。

ページを更新すると、挿入した内容が明らかに失われます。更新間で保持したい情報を永続化する必要があります。これをサーバーに送信したくない場合は、html5 ローカル ストレージを使用することもできます。ここで例を見ることができます:

http://todomvc.com/architecture-examples/angularjs/#/

于 2013-07-19T16:11:09.127 に答える