Почему мне нужно «reopenclass», чтобы установить URL для модели Ember-Data?
-
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 / Открытые классы и экземпляры /
Не связан с StackOverflow