غالبًا ما أجد نفسي أبحث عن الاستيرادات (imports) المختلفة عند إنشاء مكوّن Theme، لذا قررت تجميع مجموعة منها ووضعها هنا.
متعلقة بـ Ember
| الاسم | الاستيراد | الاستخدام |
|---|---|---|
| Component | import Component from "@glimmer/component"; |
export default class MyComponentClass extends Component {} |
| زخرفة Action | import { action } from "@ember/object"; |
@action |
| زخرفة Tracked | import { tracked } from "@glimmer/tracking"; |
@tracked myTrackedVar |
| زخرفة Service | import { service } from "@ember/service"; |
@service modal |
| (قالب Glimmer) on | import { on } from "@ember/modifier"; |
<p {{on "click" this.someAction}}>انقر هنا!</p>[1] |
متعلقة بـ Discourse
| الاسم | الاستيراد | الاستخدام |
|---|---|---|
| apiInitializer | import { apiInitializer } from "discourse/lib/api"; |
export default apiInitializer((api) => {}) |
| withPluginApi | import { withPluginApi } from "discourse/lib/plugin-api"; |
withPluginApi((api) => {})[2][3] |
| ConditionalLoadingSpinner | import ConditionalLoadingSpinner from "discourse/components/conditional-loading-spinner"; |
<ConditionalLoadingSpinner @condition={{this.loading}} /> |
| DButton | import DButton from "discourse/ui-kit/d-button"; |
<DButton @icon="..." @action={{this.someAction}} /> |
| ajax | import { ajax } from "discourse/lib/ajax"; |
ajax("/path/here")[4] |
| i18n | import { i18n } from "discourse-i18n"; |
{{i18n "locale_key"}}[5] |
| (قالب Glimmer) يساوي، لا يساوي، أكبر من، أكبر من أو يساوي، أصغر من، أصغر من أو يساوي، أو، ليس، و، لديه، يتضمن | import { eq, and, ... } from "truth-helpers"; |
{{#if (eq this.something this.something2)}}[6] |
قد ترى أن هذه العناصر تُجمع معًا، مثل متغيرات متتبعة (tracked variables) كشرط لـ ConditionalLoadingSpinner، أو إجراءات (actions) لـ DButton، وما إلى ذلك.
آمل أن يكون هذا مفيدًا!
لست خبيرًا، لذا إذا لاحظت أي أخطاء، فيرجى المساعدة في تصحيحها أو الإشارة إليها، شكرًا
.
يمكنك أيضًا استخدام أحداث مثل
inputوmousedownوfocusinوما إلى ذلك ↩︎انظر إلى discourse/app/assets/javascripts/discourse/app/instance-initializers/enable-emoji.js at 99ace1be120b928f6c694d0118959d745cc4bdbe · discourse/discourse · GitHub ↩︎
أعتقد أنه يُوصى باستخدام
apiInitializerبدلاً من ذلك؛ أعتقد أن هذا هو الإصدار القديم؟ ↩︎يعمل بشكل مشابه لـ
fetch(). ضع هذا داخل دالةasyncمع استخدام كلمة المفتاحawait. ↩︎إذا كنت تحصل على لغة الموقع من المستودع الأساسي، مثل user.summary.stats ↩︎
أشياء مثل
andوorيمكن أن تحتوي على أكثر من حجتين ↩︎