Ниже приведен пример кода. Мне нужно использовать индекс элементов в вычисляемой переменной, но я не могу понять, как это сделать, не обращаясь к переменной, содержащей приложение модели представления.Как использовать индекс в вычисленных наблюдаемых [knockout.js]
<template type="text/ko-template" id="rowTemplate">
<li><span data-bind="text: number"></span> = <span data-bind="text: word"></span></li>
</template>
<ul data-bind="template: { name: 'rowTemplate', foreach: rowArray }"></ul>
<script>
function RowModel(word) {
var self = this;
self.word = ko.observable(word);
self.number = ko.computed({
read: function(){
return "#" + app.rowArray.indexOf(self); // This works, but is far from ideal.
},
deferEvaluation: true
});
};
function ViewModel() {
var self = this;
self.rowArray = ko.observableArray([
new RowModel('Zero'),
new RowModel('One'),
new RowModel('Two'),
]);
};
var app = new ViewModel();
ko.applyBindings(app);
</script>
Я попытался изменить строку с комментарием ко многим вещам, например, $index
, self.index()
, и все подобные комбо с $parentContext
и т.д.
Дублировать вопрос: http://stackoverflow.com/q/25179606/3800244 – neRok