我发现,如果我尝试将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/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top