Обычно мне приходится искать импорты для разных вещей, когда я создаю компонент темы, поэтому я решил собрать их все и разместить здесь.
Связанные с 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/components/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) Равно, не равно, больше, больше или равно, меньше, меньше или равно, или, не, и, has, includes | import { eq, and, ... } from "truth-helpers"; |
{{#if (eq this.something this.something2)}}[6] |
Вы можете увидеть их использование в комбинации, например, переменные с декоратором tracked как условие для ConditionalLoadingSpinner или действия для 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, могут принимать более двух аргументов ↩︎