如何向 ember 个模型添加附加信息

How to add additional information to ember models

我希望在从服务返回 JSON 数据后将额外的数据添加到我的模型中。该服务我以 returns 信息作为代码交谈,但我还想包含一个更具可读性的名称以显示给用户。几乎所有使用该模型的地方都会这样做。

示例:

从服务中获取

{schedule: {code:'MONTHLY'}}

可以访问

{schedule: {code:'MONTHLY', name: 'Monthly'}}

这将适用于具有代码映射到命名的事物,其中名称仅存在于前端,而代码是持久化的。我看到有一个 custom transforms 的概念,这是要走的路吗?

我还计划在另一个文件中保留所有可能 codes/names 的映射,以迭代或比较模型的属性。例如,我想向用户展示可供选择的时间表,每月、每季度或每年。

您应该在模型上创建一个 Computed 属性。您可以称它为:"name" 或 "displayName"。它应该取决于模型的 "code" 属性。在 computed 属性 中,您应该访问一个服务。服务应该有一个方法来映射代码 -> 名称。您从服务模型调用的方法应该 return 您的名字。代号图应与模型分开。

每当您想访问 displayName 计算 属性 从模型使用 model.displayName.