لماذا أحتاج إلى "reopenClass" لتعيين عنوان url لنموذج بيانات الجمرة؟

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

  •  12-12-2019
  •  | 
  •  

سؤال

لقد وجدت أنه إذا حاولت تضمين عنوان url في التعريف الأصلي لنموذج بيانات الجمرة فإنه ينفجر في محول 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'
});
هل كانت مفيدة؟

المحلول

الاتصال extend على كائن يعين سمات المثيل، في حين أن reopenClass يحدد سمات الطبقة.

ال url السمة هي سمة على مستوى الفصل،

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

في مقابل:

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

نصائح أخرى

لاحظ أيضًا أنه يمكنك توسيع مثيل باستخدام ببساطة reopen.يحتوي مستند Emberjs على مثال تجده في http://emberjs.com/guides/object-model/reopening-classes-and-instances/

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top