如何规范化ember.js中的数据
我在如何规范化ember.js中的数据,ember.js,ember-data,Ember.js,Ember Data,我在meta部分中有相关数据属性-->值 pushPayload工作正常 this.store.pushPayload(res.products.get('meta.attributes')) 但我只需要将新数据推送到模型中,所以我尝试规范化: model.set('attributes', this.store.normalize('attribute', res.products.get('meta.attributes'))); 在正常化过程中,我遇到错误: string.js:63 U
meta
部分中有相关数据属性-->值
pushPayload
工作正常
this.store.pushPayload(res.products.get('meta.attributes'))
但我只需要将新数据推送到模型中,所以我尝试规范化:
model.set('attributes', this.store.normalize('attribute', res.products.get('meta.attributes')));
在正常化过程中,我遇到错误:
string.js:63 Uncaught TypeError: Cannot read property 'replace' of undefined
at Cache.func (string.js:63)
at Cache.get (ember-metal.js:2611)
at decamelize (string.js:100)
at Cache.func (string.js:11)
at Cache.get (ember-metal.js:2611)
at Object.dasherize (string.js:104)
at normalizeModelName (-private.js:560)
at Class.modelNameFromPayloadKey (json-api.js:352)
at Class._extractType (json-api.js:338)
at Class.normalize (json-api.js:379)
那么这里的错误是什么呢?我不想在meta.attributes
上编写循环并使用peekRecord
codesandbox示例:当您获取关系的数据时,返回承诺的是异步代码。请参阅Ember.js指南的这一部分。我怀疑在设置时,属性记录是未定义的,因为承诺尚未解决
试试这个,看看是否有帮助:
res.products.get('meta.attributes').then((records) => {
model.set('attributes', this.store.normalize('attribute', records));
})
我得到错误:TypeError:products.get(…)。then不是一个函数
。res-只是一个带有键data
和meta
的对象。元包含:属性。数据
,属性。包含
。因此,我尝试规范化meta.attributes
中的数据。很遗憾,这仍然不适用于您@Ivanov。请将您的模型和示例响应json添加到您的问题中,或者创建一个显示此错误的Ember Twiddle/codesandbox,这样我们可以更好地帮助您该问题仍然是实际的,可能需要添加一些额外的数据以便更好地理解