在KnockOutJS中按ID查找

时间:2013-03-08 13:19:52

标签: knockout.js

鉴于以下内容,我如何将ID 10退出?

function ChildListViewModel()
{
    var self = this;
    self.children = ko.observableArray([]);   

    self.children.push({id:20,name:"Jake"});
    self.children.push({id:10,name:"Jake"});

    self.find = function(id)
    {   
        console.log(self.children().length);
        setTimeout(function(){console.log(self.children().length);}, 500);
        found = ko.utils.arrayFirst(self.children(), function(child) {
            return child.id() === id;
        });

        console.log(found);

        return found;
    }

}

我想做点什么

ChildVM.find(10);

使用ko.utils.arrayFirstko.utils.arrayForEach的所有尝试都让我失望。

修改

这现在有效,请参阅选定的答案。

有关加载订单和AJAX的问题意味着它无法正常工作。

1 个答案:

答案 0 :(得分:12)

return ko.utils.arrayFirst(self.children(), function(child) {
    return child.id === id;
});

请记住使用self.children()来获取基础数组。