Почему мне нужно «reopenclass», чтобы установить URL для модели Ember-Data?

StackOverflow https://stackoverflow.com//questions/12679998

  •  12-12-2019
  •  | 
  •  

Вопрос

Я обнаружил, что если я стараюсь включить URL в исходное определение модели Ember-Data, она поражает в моем адаптере для отдыха, но если я просто «воспитывать», это нормально.

Что такое техническая причина этого?(ниже рабочий пример)

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 - это атрибут уровня класса,

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

в отличие от:

speaker = CodeCamp.Speaker.createObject()
Ember.get(speaker, 'name')
.

Другие советы

Примечание также, что вы можете продлить экземпляр, используя просто reopen.Docu Emberjs содержит пример, который вы находите в http:// emberjs.COM / Guides / Object-Model / Открытые классы и экземпляры /

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top