Как я могу получить доступ к индексу foreach при переборе ko.computed в knockout.js - PullRequest
4 голосов
/ 20 января 2012

Я создаю постраничный список на стороне клиента с помощью knockout.js, и я пытаюсь вывести индекс страницы с помощью приведенного ниже кода, поэтому я получаю интерактивные ссылки с номерами, чтобы люди могли переключать страницы.1003 * В моей модели просмотра

this.Paging = ko.computed(function () 
{
  return ko.utils.range(1, this.TotalPages);
});

Все работает, пробовал только вывод текста: тест, и он пишет тест для каждой страницы, но я хочу цифры.Так что проще всего, конечно, получить доступ к текущему индексу в foreach и + 1.

Как я смогу это сделать?

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Когда вы используете 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>
2 голосов
/ 20 января 2012

Проблема может быть с вашим вычисленным ко.Вы не привязали его к this.Поэтому вместо:

this.Paging = ko.computed(function ()   
{  
  return ko.utils.range(1, this.TotalPages);  
}); 

.. try ...

this.Paging = ko.computed(function ()  
{ 
  return ko.utils.range(1, this.TotalPages); 
}, this); 

Затем вы можете попробовать ColinE с предложением text: this

...