我的记录并不平坦。他们有这种结构:
{
'type' : 'node',
'properties' : {
'name' : 'sfddsadfsd',
'xxx' : 'sadfdsf',
},
'outputs' : {
'fghdf' : 'sadfdsf',
'xxxx' : 'sdfsd',
}
}
你明白了。这些字段(properties
和outputs
)不会引用 sideloaded 记录;相反,它们是我记录的一部分(在我的CouchDb数据库中)。我做到了这一点(在了解这是一个犯罪数据标准之前),因为它是一种在文档中组织大量属性的便捷方式 - CouchDb用于记录的术语。这个名字还说明了为什么你想要在你的记录中有结构:因为文档可以变得很大,因此你需要一些组织结构来让你的生活更轻松(或者我想,在碰到ember-data之前)。
我很高兴使用嵌入式属性和以前版本的ember-data对这些记录进行建模。现在,似乎ember-data对于嵌入式记录有dropped support。有人建议实施extractSingle
并使用mapProperty('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'}
});
(outputs
是NodeMixin
)
使用ember-data 1.0 beta对我进行建模有哪些选择?我不知道如何处理这些模型,我有十几个模型。将记录结构推送到余烬数据是很困难的,现在...... puff ,努力消失了,它不再起作用了。
答案 0 :(得分:5)
如果您只想使用properties
和outputs
作为原始JSON数据,可以将它们声明为非类型DS.attr
,它们将按原样传递。
SettingsApp.Node = DS.Model.extend(SettingsApp.NodeMixin, {
properties : DS.attr(),
outputs : DS.attr()
});