gpt4 book ai didi

ember.js - ember-data 1.0 beta 中的嵌入记录

转载 作者:行者123 更新时间:2023-12-04 15:12:11 24 4
gpt4 key购买 nike

我的记录并不平坦。他们有这样的结构:

{
'type' : 'node',
'properties' : {
'name' : 'sfddsadfsd',
'xxx' : 'sadfdsf',
},
'outputs' : {
'fghdf' : 'sadfdsf',
'xxxx' : 'sdfsd',
}
}

你明白了。这些字段( propertiesoutputs )不引用旁加载记录;相反,它们是我记录的一部分(在我的 CouchDb 数据库中)。我这样做了(在了解到这是 ember-data 标准的罪过之前)因为这是在文档中组织大量属性的一种方便的方式 - CouchDb 用于记录的术语。这个名字也暗示了为什么你希望在你的记录中有结构:因为一个文档可能会变得非常大,因此你需要一些组织结构来让你的生活更轻松(或者我认为,在遇到 ember-data 之前)。

我很高兴使用嵌入属性和以前版本的 ember-data 对这些记录进行建模。现在,似乎 ember-data 有 dropped support用于嵌入记录。有建议实现 extractSinglemapProperty('id'); 一起做一些时髦的事情

好吧:因为它们是我记录的一部分,所以嵌入的属性/输出 没有记录 ID .节点外根本没有属性或输出的概念。它们不是带有 ID 的独立数据:它们只是节点的一部分。

以前我有以下模型定义:
SettingsApp.NodeProperties = DS.Model.extend({
name : DS.attr('string'),
});

DS.RESTAdapter.map('SettingsApp.NodeProperties', {
name : {key: 'name'},
});

SettingsApp.Node = DS.Model.extend(SettingsApp.NodeMixin, {
properties : DS.belongsTo('nodeProperties')
});

DS.RESTAdapter.map('SettingsApp.Node', {
nodeType: {key: 'type'},
outputs: {embedded: 'always'},
properties: {embedded: 'always'}
});

( outputsNodeMixin 的一部分)

我有哪些使用 ember-data 1.0 beta 进行建模的选项?我不知道如何处理这些模型,我有大约一打。将我的记录结构插入 ember-data 已经够难的了,现在......噗,努力消失了,它不再起作用了。

最佳答案

如果您只想使用 propertiesoutputs作为原始 JSON 数据,您可以将它们声明为非类型化 DS.attr它们将按原样通过。

SettingsApp.Node = DS.Model.extend(SettingsApp.NodeMixin, {
properties : DS.attr(),
outputs : DS.attr()
});

关于ember.js - ember-data 1.0 beta 中的嵌入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18632117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com