为什么我需要"reopenClass"来设置ember-data模型的url?
-
12-12-2019 - |
题
我发现,如果我尝试将url包含在ember-data模型的原始定义中,它会在我的REST适配器中爆炸,但如果我只是"reopenClass"它很好。
这背后的技术原因是什么?(下面是工作示例)
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session')
});
CodeCamp.Speaker.reopenClass({
url: 'sessions/%@/speakers'
});
解决方案
打电话来 extend
在对象上设置实例属性,而 reopenClass
设置类属性。
该 url
attribute是类级属性,
Ember.get(CodeCamp.Speaker, 'url')
相对于:
speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
其他提示
另请注意,您可以通过简单地使用扩展实例 reopen
.Emberjs的docu包含一个例子,你可以在 http://emberjs.com/guides/object-model/reopening-classes-and-instances/
不隶属于 StackOverflow