Ответ 1
$index является наблюдаемым, что является функцией. Попробуйте <span data-bind="text: $index() + 1"></span>
Почему это, когда я пытаюсь использовать knockout.js для привязки некоторого текста с помощью $index, я получаю код функции вместо числа?
<tbody data-bind="foreach: MyList">
<tr>
<td><span data-bind="text: $index + 1"></span></td>
</tr>
</tbody>
Вместо получения 1, 2, 3 и т.д. я получаю следующее:
Вы можете видеть по последнему символу в приведенном выше изображении, что мой индекс нуля добавляется к 1. Если я удалю '+ 1' из моего привязки, я получаю 0, 1, 2 вместо функции.
Как сообщить нокауту, чтобы оценить выражение? У меня такая же проблема, когда я отправляю форму. Мои строковые поля передаются как функция вместо значения.
$index является наблюдаемым, что является функцией. Попробуйте <span data-bind="text: $index() + 1"></span>
Если вы используете
<span data-bind="text: $index() + 1"></span>
и, например, ваше значение индекса равно 2, текст вашего диапазона будет: 21, а не 3.
вы должны определить функцию в вашем представленииMode, например:
self.itemNumber = function(index) {
return index + 1;
}
а затем в вашем диапазоне вы должны сделать:
<span data-bind="text: $root.itemNumber($index())"></span>
Надеюсь, это поможет:)