ما هو السبب وراء إعادة فتح فئة النموذج؟

لاحظت أن نموذج النسخ الاحتياطي يُعرّف نموذجًا ثم يعيد فتحه بعد عدة أسطر في نفس الملف، مضيفًا دوالًا مثل find و start و cancel وما إلى ذلك. أتساءل ما هو المنطق وراء ذلك؟ لماذا تحتاج الفئة إلى إعادة الفتح؟ أنا متأكد من أن هناك سببًا صحيحًا… أنا فقط لا أعرفه :slight_smile:

const Backup = Discourse.Model.extend({
  destroy() {},
  restore() {}
});

Backup.reopenClass({
  find() {
  ...
  }
  // الخ
});

انظر: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/admin/models/backup.js.es6

سؤال رائع، لقد كنت مرتبكًا قليلاً بشأن هذا أيضًا!

يُستخدم reopenClass لإضافة طرق (أو خصائص) ثابتة إلى الفئة نفسها. لا أعتقد أن هناك طريقة لتحديد طريقة ثابتة عبر Ember.Object.extend.

مزيد من المعلومات حول reopenClass و reopen: https://guides.emberjs.com/release/object-model/reopening-classes-and-instances/