我有foo
-数据模型thing
的一个实例.thing.js具有以下属性:
owner: DS.belongsTo('user')
如果我有一个空所有者的foo
,那么我如何检索表示所有者关系模型的值'user'
(仅使用foo
和'owner'
字符串)?
编辑:我希望允许选择关系组件处理名称与类名不同的关系。
发布于 2018-09-12 05:35:30
看来我能做到以下几点:
this.get('model').get('_internalModel._relationships.initializedRelationships.'+this.get('relation')+'.relationshipMeta.type')
model
是一个实例,relation
是关系名称的字符串,它正确地返回关系的模型。
编辑:一个更好的解决方案,不使用私人API提供的成员不和:
function getRelatedModelName(record, relationName){
let ParentModelClass = record.constructor;
let meta = get(ParentModelClass, 'relationshipsByName').get(relationName);
return meta.type;
}
发布于 2018-09-17 21:13:56
发布于 2018-09-19 00:45:07
这看起来像是typeForRelationship的用例。
在您的示例中,您应该能够执行以下操作
store.modelFor('thing').typeForRelationship('owner', store);
如果不喜欢这种方法,可以使用belongsTo参考API,其中使用关系中的元数据来获取类型
foo.belongsTo('owner').type
使用这种方法的唯一一点是,type
属性可能不是公共API,并且可能(虽然不太可能)在某个时候发生更改。
https://stackoverflow.com/questions/52294774
复制相似问题