7

我发现如果我尝试将 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'
});
4

2 回答 2

15

调用extend对象设置实例属性,而reopenClass设置类属性。

url属性是类级别的属性,

Ember.get(CodeCamp.Speaker, 'url')

相对于:

speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
于 2012-10-01T23:35:36.107 回答
0

另请注意,您可以使用 simple 来扩展实例reopen。Emberjs 的文档包含一个示例,您可以在http://emberjs.com/guides/object-model/reopening-classes-and-instances/找到该示例

于 2013-01-18T08:01:29.980 回答