我需要通过Id在报告可观察数组中找到报告。我怎么写underscore
声明?
我正在使用:
_.where(reports(), {id:data.ReportId})
和
_.where(reports(), {id:ko.observable(data.ReportId)})
它总是返回一个空数组。
然后我发现了一些underscoreKO.js
,但它仍然不起作用。有人能帮我吗?感谢。
还有另一个类似的帖子here,但它们并不完全相同。 ko.utils.arrayFirst
可以找到该项目,但不会帮助我更新它。
正确的答案来自丹尼尔·A·怀特,稍作改动。谢谢。
一次更正:
var record = _.filter(reports(), function (item) { return item.id() == data.ReportId; })
if (record.length > 0) {
_.first(record).reportStatus("Approved");
}
我发现它必须是item.id()
,而不仅仅是id()
。但感谢丹尼尔一百万!
答案 0 :(得分:6)
我认为这不会起作用,因为报告中的id
是可观察的。
您应该使用filter
。
_.filter(reports(), function(item) {return id() == data.ReportId; })
答案 1 :(得分:0)
如果您的报告中的id
是可观察的,则可能需要使用filter
:
var filteredReports = _.filter(reports(), function (report) {
return report.id() === data.ReportId;
});