У меня есть наблюдаемый массив, содержащий отображенные данные Json. Данные уже отсортированы по «Производительности».Добавить значение наблюдаемого знака в значение observablearray
Что мне нужно сделать, это добавить ранжирование в массив, чтобы мой foreach
выдавал нумерованный ранг. До сих пор я использовал $ index, который отлично работает, пока я не использую расширители сортировки и пейджинга, которые меняют индекс массива. Правильно ли я думаю, что лучшим подходом было бы добавить каждое значение индекса в массив?
Что-то подсказывает мне, что это должно быть довольно просто, но мне еще предстоит найти правильный подход.
viewModel.integerlists = ko.observableArray([]);
function IntegerLists(data) {
this.IntegerListID = data.IntegerListID;
this.Performance = data.Performance;
this.Direction = data.Direction;
this.Integers = ko.observableArray(data.Integers);
}
$.getJSON("/Home/GetIntegerLists", function (allData) {
var mappedIntegers = $.map(allData, function (item) { return new IntegerLists(item) });
viewModel.integerlists(mappedIntegers);
});
У меня была удача с расширением 'indexed', которое подписывается на наблюдаемый массив и проходит один проход путем обновления индекса на каждом из них. Вторая часть этого ответа: http://stackoverflow.com/questions/12229578/knockoutjs-access-index-of-item-in-array-from-within-the-javascript-template/12230148#12230148 –
Спасибо RP - это интересно, но на самом деле не решает мою проблему. http://jsfiddle.net/zGmcg/26/ Если вы нажмете ссылку «оценка», то порядок подсчета будет переключен, но индекс останется таким же, как и должен. Мне не обязательно нужен индекс, мне просто нужен способ ранжировать членов массива на основе оценки. – user1405195