0

我有一条带有 RSVP 的路由,它加载了几个模型(包含项目、治疗、价格的类别),这些模型以 JsON API 格式返回并希望在表格中显示它们:

项目名 治疗名称 1 治疗名称 N
第一类
第 1 类中的第 1 项 治疗 1 的类别 1 中的价格项目 1 设置价格
第 1 类中的第 2 项 设置价格 治疗 N 的第 1 类中的第 2 项价格
第 2 类
类别 2 中的项目 1 治疗 1 的类别 2 中的价格项目 1 治疗 N 的类别 2 中的价格项目 1

Setup Price仅在没有找到任何价格时显示,因此用户可以为该处理中的项目设置价格

我已经可以迭代类别、项目和治疗;但仍然不知道如何配置才能显示正确的价格。

如何通过 2 个属性找到正确的价格?我尝试find-by在模板中使用助手:

{{#let (find-by "item.id" item.id @model.prices) as |price|}}
  {{price.amount}}
{{/let}}

,但它似乎只支持 1 个属性。

好吧,如果在 SQL 中它会是这样的:

select * from prices where item.id = [currentItemId] and treatment.id = [currentTreatmentId]

但我希望它在已经加载的价格模型中搜索...

有什么帮助吗?谢谢你...

4

1 回答 1

0

如果您使用的是 ember-composable-helpers 中的 find-by,那么您的语法似乎是正确的。如果已安装此插件,您可能需要更新它,或者调查find-by您的应用程序的来源,因为它不是默认的 ember 助手。您也可以使用helper解决此问题。调用为:

{{#let (find-price-for-item item @model.prices) as |price|}}
  {{price.amount}}
{{/let}}

这可能看起来像:

// app/helpers/find-price-for-item.js
import { helper } from '@ember/component/helper';

function findPriceForItem([item, prices]) {
  return prices.find(price => price.item.id === item.id);
}

export default helper(findPriceForItem);
于 2021-11-29T04:47:48.270 回答