这可能很简单,但我似乎不容易找到它。在knockout.js中,如何打印使用foreach绑定遍历的可观察数组中的项的索引?
发布于 2012-07-10 01:29:14
knockout 2.1增加了很好的新选项$index。下面是http://knockoutjs.com/documentation/foreach-binding.html示例
发布于 2012-03-29 02:53:42
你不能。至少不能直接这么做。我自己使用这个函数向我的ObservableArrays中的对象添加索引属性:
function indexSubscribe(array) {
array.subscribe(function() {
for (var i = 0, j = array().length; i < j; i++) {
var item = array()[i];
if (!item.index) {
item.index = ko.observable(i);
} else {
item.index(i);
}
}
});
};
然后在我的ViewModel中,我可以这样做:
this.whatevers = ko.observableArray();
indexSubscribe(this.whatevers);
发布于 2015-08-11 19:41:32
下面的解决方案可能是迟来的答案。但是,如果您的首选是viewmodel
,下面的解决方案将有助于最新的修复。
根据Knockout 3.1.0
和更高版本,库有简单的解决方法。可以将index
作为辅助参数传递给arrayForEach
。
var items = ["Mercedes", "Volvo", "BMW"];
ko.utils.arrayForEach(items, function(item, index) {
console.log(item + ' ' + index);
});
希望这个解决方案能帮助到一些人。
https://stackoverflow.com/questions/9913808
复制相似问题