用于淘汰赛的“ for循环”

时间:2019-05-16 13:08:50

标签: javascript loops knockout.js

我有一个页面,其中包含很多项目(observablearray),因此我创建了一个分页系统。 (嗯,不是创造自己,而是从这里How to handle pagination with Knockout复制;))

我要显示每页上的各个按钮。 像这样:

<  1 2 3 4  >

我具有“ totalPages”属性,但是如何在前端使用它?

我如何遍历敲除的int变量并创建指向具有相同int的函数的链接?

我希望是这样的:

<ul data-bind="foreach: totalPages">
    <li><a href="#" data-bind="text: $index, click: pageNumber($index)"></li>
</ul>

但这不起作用。

1 个答案:

答案 0 :(得分:0)

您可以使用Array.from()创建一个空数组,然后在foreach中使用它。为click函数添加包装器,以获取$index() + 1作为参数:

const viewModel = {
  totalPages: ko.observable(4),
  pageNumber: n => console.log(n)
}

ko.applyBindings(viewModel)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<ul data-bind="foreach: Array.from({ length: totalPages() })">
    <li>
      <a href="#" data-bind="text: $index() + 1, click: () => $parent.pageNumber($index() + 1)"></a>
    </li>
</ul>