我正在使用knockout.js在客户端构建分页列表,并且我尝试使用以下代码输出页面索引,以便我可以使用数字点击链接,以便人们可以切换页面。
<ul data-bind="foreach:Paging">
<li>
<a href="#" data-bind="click: $root.SetCurrentPage(), text: WHATTOWRITEHERE "></a>
</li>
</ul>
在我的viewmodel中
this.Paging = ko.computed(function ()
{
return ko.utils.range(1, this.TotalPages);
});
一切正常,尝试输出文本:测试并为每个页面编写测试,但我想要数字。所以最简单的方法当然是访问foreach和+ 1中的当前索引。
我怎么能这样做?
答案 0 :(得分:2)
问题可能在于你的计算ko。您尚未将其绑定到this
。所以而不是:
this.Paging = ko.computed(function ()
{
return ko.utils.range(1, this.TotalPages);
});
..试试......
this.Paging = ko.computed(function ()
{
return ko.utils.range(1, this.TotalPages);
}, this);
然后,您可以尝试使用text: this
答案 1 :(得分:2)
在绑定中使用this
时,它将引用窗口对象。你应该像这样使用$data
:
<a href="#" data-bind="click: $root.SetCurrentPage(), text: $data"></a>
我使用此标记对其进行了测试,并按预期工作:
<!-- returns 12345678910 -->
<div data-bind="foreach: ko.utils.range(1,10)"><span data-bind="text: $data"></span></div>