首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成员:“映射”错误匹配的api对象(asp.net web )到内存模型。

成员:“映射”错误匹配的api对象(asp.net web )到内存模型。
EN

Stack Overflow用户
提问于 2016-06-22 18:48:06
回答 1查看 47关注 0票数 1

根据我到目前为止学到的知识,我知道我必须在序列化程序中做一些事情来解决下面的问题,但是有点丢失了…

我的api返回一个名为PortfolioSummaryDto的对象,我的Ember模型被命名为“portfoliolistitem”。

这给了我以下错误(这是有意义的),在有效负载中遇到了"portfolio_summary_dtos“,但是没有为模型名”portfolio-汇总-dto“(使用portfolio_summary_dtos解析的模型名称)找到模型。

接下来,我想调用任何API调用,其中返回的对象/s及其名称(和属性名称)与我的Ember模型完全不同。

有人能告诉我一些阅读如何“映射”api对象到成员模型吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-23 07:22:29

ember.js的一般思想是约定而不是配置,因此您必须以一种特定的方式命名ember.js模型的属性和名称,以访问负载的底层JSON属性。

PortfolioSummaryDto ->投资组合-摘要-dto

但是,如果要自定义此行为,则必须重写此约定。

若要重写序列化过程,必须实现自己的ember.js序列化程序。让我们假设您不想为每个ember.js模型实现一个单独的序列化程序,那么您可以对模型名称执行以下操作:

app/application/model-mapping.js中创建这样的配置文件

代码语言:javascript
复制
export default {
  'PortfolioSummaryDto': 'portfoliolistitem',
  /* add more here */
}

该文件表示从模型文件到ember.js模型文件的映射。然后以这样的方式创建或自定义应用程序序列化程序:

代码语言:javascript
复制
import DS from 'ember-data';
import mappingTable from './model-mapping';

export default DS.RESTSerializer.extend({
  modelNameFromPayloadKey(payloadKey) {
    return mappingTable[payloadKey] || payloadKey;
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37976040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档