0

我需要按 ID 在报告可观察数组中找到一份报告。我应该如何写underscore声明?

我在用:

_.where(reports(), {id:data.ReportId})

_.where(reports(), {id:ko.observable(data.ReportId)})

它总是返回一个空数组。

然后我发现了一些underscoreKO.js,但它仍然不起作用。有人能帮我吗?谢谢。


这里有另一个类似的帖子,但它们并不完全相同。ko.utils.arrayFirst可以找到该项目,但不会帮助我更新它。


正确答案来自 Daniel A. White,略有改动。谢谢你。

一更正:

var record = _.filter(reports(), function (item) { return item.id() == data.ReportId; })
if (record.length > 0) {
    _.first(record).reportStatus("Approved");
}

我发现它必须是item.id()而不仅仅是id(). 但感谢丹尼尔一百万!

4

2 回答 2

6

我认为这不会起作用,因为id在您的报告中是可观察的。

你应该使用filter.

_.filter(reports(), function(item) {return id() == data.ReportId; })
于 2013-08-30T17:56:55.293 回答
0

如果id您的报告中的 是可观察到的,您可能只需要使用filter

var filteredReports = _.filter(reports(), function (report) {
    return report.id() === data.ReportId;
});
于 2013-08-30T17:58:17.057 回答