首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从成员JS中的模型实例中查找关系的类名

从成员JS中的模型实例中查找关系的类名
EN

Stack Overflow用户
提问于 2018-09-12 04:06:09
回答 3查看 104关注 0票数 1

我有foo -数据模型thing的一个实例.thing.js具有以下属性:

owner: DS.belongsTo('user')

如果我有一个空所有者的foo,那么我如何检索表示所有者关系模型的值'user' (仅使用foo'owner'字符串)?

编辑:我希望允许选择关系组件处理名称与类名不同的关系。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-12 05:35:30

看来我能做到以下几点:

this.get('model').get('_internalModel._relationships.initializedRelationships.'+this.get('relation')+'.relationshipMeta.type')

model是一个实例,relation是关系名称的字符串,它正确地返回关系的模型。

编辑:一个更好的解决方案,不使用私人API提供的成员不和:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function getRelatedModelName(record, relationName){
        let ParentModelClass = record.constructor;
        let meta  = get(ParentModelClass, 'relationshipsByName').get(relationName);
        return meta.type;
      }
票数 0
EN

Stack Overflow用户

发布于 2018-09-17 21:13:56

听起来你需要做一些工作来建立你的关系。阅读指南的此页

如果正确地设置了关系,那么要获得关联的用户,您应该能够执行foo.owner。这假设用户已经出现在商店中。我建议使用Ember检查员浏览器插件来调试关系。

票数 1
EN

Stack Overflow用户

发布于 2018-09-19 00:45:07

这看起来像是typeForRelationship的用例。

在您的示例中,您应该能够执行以下操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
store.modelFor('thing').typeForRelationship('owner', store);

如果不喜欢这种方法,可以使用belongsTo参考API,其中使用关系中的元数据来获取类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foo.belongsTo('owner').type

使用这种方法的唯一一点是,type属性可能不是公共API,并且可能(虽然不太可能)在某个时候发生更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52294774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文