我有一个属于userhashtag
的模型hashtag
(即一个多数)。顾名思义,userhashtag
模型将user
模型与hashtag
模型相关联。
userhashtag
模型仅包含 user_id 和 hashtag_id 。我有一个ember模板,列出了某个 user_id 的所有用户标签,我想显示带有 name 属性的userhashtags,包含在其父级,hashtag模型中
这是我的userhashtag模型:
App.Userhashtag = DS.Model.extend({
userId: DS.attr('number'),
hashtagId: DS.attr('number'),
createdAt: DS.attr('date'),
updatedAt: DS.attr('date'),
user: DS.belongsTo('user'),
hashtag: DS.belongsTo('hashtag'),
hashtagname: function(){
var h = this.store.find('hashtag', this.get('hashtagId'));
return h.get('name');
}.property('hashtagId')
});
我试图在我的模板中调用它:
{{userhashtag.hashtagname}}
我正在使用chrome开发人员工具的ember扩展,我可以看到它正确加载了所有hashtags
和userhashtags
。但是,我仍然没有看到name属性。经过检查,商店正确找到相应的主题标签,但var h
正在返回未定义。
有人会对hashtagname
函数没有返回名称的原因提出任何建议吗?另外,我觉得我在最佳实践中并没有这样做,我应该做些什么呢?
谢谢!
答案 0 :(得分:1)
首先,h应该是承诺,而不是记录。
其次,hashTag是否属于工作?
hashtagname: function(){
return this.get('hashtag.name');
}.property('hashtag')
同时在模板中你可以轻松地做到
{{hashtag.name}}
你不应该在模特里面使用商店,我甚至不赞成如何在不将商店注入所有商品的情况下做到这一点。 (我很喜欢你应该发布的踢腿和咯咯笑声)
答案 1 :(得分:0)
您应该从模型中删除hastagId
和userId。当ember-data尝试解析模型并找到somemodel_id
和belongsTo
具有相同名称(没有_id
)时,它还会加载belongsTo
(或者它加载,当需要它的某些属性时,如果我记得正确的话。)