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

Gra*_*ett 18 knockout.js

这可能很简单,但我似乎无法轻易找到它.在knockout.js中,如何使用foreach绑定在可迭代数组中打印项目的索引?

小智 35

淘汰赛2.1增加了新的选项$ index.这是http://knockoutjs.com/documentation/foreach-binding.html的示例


Mat*_*and 11

你不能.反正不是直接的.我自己使用这个函数来为我的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);  
                }
            }
        }); 
   };
Run Code Online (Sandbox Code Playgroud)

然后在我的ViewModel中,我可以这样做:

this.whatevers = ko.observableArray();
indexSubscribe(this.whatevers);
Run Code Online (Sandbox Code Playgroud)