لماذا أحتاج إلى "reopenClass" لتعيين عنوان url لنموذج بيانات الجمرة؟
-
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/
لا تنتمي إلى StackOverflow