【发布时间】:2015-09-15 09:49:42
【问题描述】:
下面是一些示例代码。我需要在计算变量中使用项目索引,但如果不访问保存视图模型应用程序的变量,我无法弄清楚如何做到这一点。
<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 类似的组合等。
【问题讨论】:
标签: javascript knockout.js knockout-3.0