現在のところ、最初からナビゲータに任意の数のページを置くことができます。
<ons-navigator>
<ons-page ng-repeat="page in pages">{{$index}}</ons-page>
</ons-navigator>
これは問題なく動作します。今度はskipping forward
の部分について - 実際にはナビゲータはスタックのようにページを持つことになっています。つまり、最後のページは常に目に見えるものになっています。そのため、方法はpushPage
とpopPage
です。だからあなたが一般的にやるべきことは、スタックに入れたいページだけをプッシュすることです。あなたの場合、$scope.pages
には必要なページだけが必要です。将来的に必要なページがある場合は、後で追加することをお勧めします。
あなたが必要とするページよりも多くのページを配置したい場合は、それでもやりとりができますが、自分でページの表示を管理する必要があります。あなたの2つのオプションは、次のようになります。
- 不要なページを非表示にするには:
bringPageTop
のようなものを使用して、必要なものをスタックの最上部に配置します。
これらの2つのアプローチのうち、Demoがあります。
動的テンプレートを生成することについて - たぶん1つのテンプレートを使用して管理しようとするかもしれませんが、コントローラを持っていれば何でもできます。最初はng-repeat
のようなものをテンプレート自体に使用することはできませんが、DOMにテンプレートの内容を追加すると、バインディングはうまく動作します。その場合は、同じテンプレートを複数回(おそらくアニメーションなし)押して、スコープ内で必要なものを変更するだけです。