4

angularjs を使用して単一ページの Web アプリの開発を開始し、現在はナビゲーションを定義しています。したがって、2 レベルのナビゲーションを使用することになります。

第 1 レベル: ng-view を使用したメイン ナビゲーション。

第 2 レベル: ng-include を使用した上下のバーを使用した SubView ナビゲーション。

これは、iPhone のシナリオです。

アプリのシナリオ

ボタンですべてのナビゲーションを制御するため、iPhone のシナリオは私には問題ないように思えます。しかし、ここで、ユーザーが履歴の戻るボタン (物理ボタン) を使用して戻ることができる Android のシナリオを考えてみましょう。サブナビゲーションに ng-include を使用する場合、どのようにサポートできますか?

履歴を使用したワークフロー

前もって感謝します

4

1 に答える 1

2

URL にパラメーターを追加して、Android の履歴と連携させることができます。

#/main?page=1
#/main?page=2

次に、それを使用てアプリの状態を制御すると、Android の戻るボタンが機能します。

次のように URL パラメータを設定できます$location.search

$location.search('page', 4);

$location.search ドキュメント: http://docs.angularjs.org/api/ng.$location#search

もう 1 つ:ビューの宣言にreloadOnSearch: falseオプションを追加する必要があります。$routeProvider.when()デフォルトでは、クエリ パラメータを で変更すると、ビュー全体がリロードされます$location.search()。これを false に設定すると、リロードされなくなります。これは、この場合に必要なことです。

$routeProvider.when('/main', { reloadOnSearch: false });

reloadOnSearch ドキュメント: http://docs.angularjs.org/api/ng.$ro ​​uteProvider#when

于 2013-04-29T15:49:09.563 に答える