为什么我需要"reopenClass"来设置ember-data模型的url?

Tor*_*ups 7 ember.js ember-data

我发现,如果我尝试将url包含在ember-data模型的原始定义中,它会在我的REST适配器中爆炸,但如果我只是"重新打开",那就没关系了.

这背后的技术原因是什么?(下面是工作示例)

CodeCamp.Speaker = DS.Model.extend({
    id: DS.attr('number'),
    name: DS.attr('string'),
    session: DS.belongsTo('CodeCamp.Session')
});

CodeCamp.Speaker.reopenClass({
    url: 'sessions/%@/speakers'
});
Run Code Online (Sandbox Code Playgroud)

Bra*_*est 15

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

url属性是类级属性,

Ember.get(CodeCamp.Speaker, 'url')
Run Code Online (Sandbox Code Playgroud)

而不是:

speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
Run Code Online (Sandbox Code Playgroud)