在Ember中使用多个属性查找,js辛烷

dzjeubhm  于 2022-10-20  发布在  其他
关注(0)|答案(1)|浏览(120)

我有一个使用RSVP的路由,它加载了几个模型(包含项目、治疗和价格的类别),这些模型在JsON API Forrmat中返回,并希望在表中显示它们:
|项目名称|治疗名称1|治疗名称N|
| ------------ | ------------ | ------------ |
|类别1|||
|第1类中的项目1 |第1类治疗的价格项目1 |设置价格|
|第1类中的项目2 |设置价格|第1类治疗N的价格项目2|
|类别2|||
|第2类中的项目1 |第2类治疗1的价格项目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]

但我希望它在已经加载的价格模型中搜索。。。
有什么帮助吗?非常感谢。

kr98yfug

kr98yfug1#

如果您使用的是findby from ember composable helpers,那么看起来您的语法是正确的。如果安装了此插件,您可能需要更新它,或者调查find-by在应用程序中的来源,因为它不是默认的成员帮助程序。你也可以用助手来解决这个问题。调用方式:

{{#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);

相关问题