我正在使用 knockout.js 在客户端构建分页列表,并且尝试使用以下代码输出页面索引,以便我获得带有数字的可点击链接,以便人们可以切换页面。
<ul data-bind="foreach:Paging">
<li>
<a href="#" data-bind="click: $root.SetCurrentPage(), text: WHATTOWRITEHERE "></a>
</li>
</ul>
在我的视图模型中
this.Paging = ko.computed(function ()
{
return ko.utils.range(1, this.TotalPages);
});
一切正常,尝试只输出文本:测试,它为每个页面写入测试,但我想要数字。所以最简单的方法当然是访问 foreach 中的当前索引并+ 1。
我怎样才能做到这一点?
问题可能出在你计算的 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);
然后您可以尝试 ColinE 的建议
text: this
当您在绑定中使用
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>