首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Knockout.js打印foreach中对象的索引

Knockout.js打印foreach中对象的索引
EN

Stack Overflow用户
提问于 2012-03-29 02:47:41
回答 3查看 20.6K关注 0票数 18

这可能很简单,但我似乎不容易找到它。在knockout.js中,如何打印使用foreach绑定遍历的可观察数组中的项的索引?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-10 01:29:14

knockout 2.1增加了很好的新选项$index。下面是http://knockoutjs.com/documentation/foreach-binding.html示例

票数 35
EN

Stack Overflow用户

发布于 2012-03-29 02:53:42

你不能。至少不能直接这么做。我自己使用这个函数向我的ObservableArrays中的对象添加索引属性:

代码语言:javascript
复制
    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中,我可以这样做:

代码语言:javascript
复制
this.whatevers = ko.observableArray();
indexSubscribe(this.whatevers);
票数 11
EN

Stack Overflow用户

发布于 2015-08-11 19:41:32

下面的解决方案可能是迟来的答案。但是,如果您的首选是viewmodel,下面的解决方案将有助于最新的修复。

根据Knockout 3.1.0和更高版本,库有简单的解决方法。可以将index作为辅助参数传递给arrayForEach

代码语言:javascript
复制
var items = ["Mercedes", "Volvo", "BMW"];

ko.utils.arrayForEach(items, function(item, index) {
    console.log(item + ' ' + index);
});

希望这个解决方案能帮助到一些人。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9913808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档