结合ons-navigator和ng-repeat

时间:2016-05-05 15:37:08

标签: angularjs onsen-ui

我正在尝试使用ons-navigator或类似内容基于数组创建具有任意页数的ng-repeat元素。在此我需要找到一种方法来跳过页面。

我在导航器中尝试在ng-repeat上使用ons-template无效。有一个GitHub问题解释了为什么我的方法不起作用:https://github.com/OnsenUI/OnsenUI/issues/233

1 个答案:

答案 0 :(得分:0)

目前,您可以从一开始就在导航器中放置任意数量的页面。

<ons-navigator>
  <ons-page ng-repeat="page in pages">{{$index}}</ons-page>
</ons-navigator>

这很好用。现在关于skipping forward部分 - 实际上导航器应该具有内部页面,就像它们是堆栈一样,这意味着最后一页应该始终是可见的。这就是为什么它还有方法pushPagepopPage。所以你通常应该只是在你的堆栈中只推送你想要的页面。因此,在您的情况下,$scope.pages应该只包含您需要的页面。如果您将来有需要的页面,最好在以后添加它们。

如果您想要放置比您需要的页面更多的页面,您仍然可以这样做,但是您需要自己管理页面的显示。那么你的两个选择是:

  • 隐藏您不想要的页面。
  • 使用类似bringPageTop的内容将您想要的内容放在堆栈顶部。

以下是这两种方法的Demo

关于生成动态模板 - 也许您可以尝试使用一个模板进行管理,但让它的控制器执行您想要的任何操作。最初你不能在模板本身上使用ng-repeat之类的东西,但是在将模板内容添加到dom之后,绑定将正常工作。在这种情况下,您可以多次推送相同的模板(可能没有动画),只需更改范围内的任何内容。