5

鉴于以下情况,我如何让 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 的问题意味着这不能正常工作。

4

1 回答 1

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

只需记住使用self.children()来获取底层数组。

于 2013-03-08T13:22:30.560 回答