Фон
По сути, если вы используете что-то вроде {{foo}} в шаблоне Handlebars для обращения к свойству контроллера или компонента, то это нужно обновить до {{this.foo}}.
Информация от разработчиков фреймворка: Property Fallback Lookup | Ember.js - Deprecations
Чтобы обеспечить переход Discourse на Ember 4.x, мы внедрили адаптер обратной совместимости, чтобы темы и плагины не были вынуждены срочно вносить эти изменения. Однако поддерживать этот адаптер неограниченно долго невозможно, поэтому нам необходимо обновить темы и плагины на современный синтаксис.
Устаревание
В последней версии Discourse использование устаревшего синтаксиса приведёт к выводу сообщения об устаревании в консоль. Оно будет выглядеть примерно так:
DEPRECATION: [PLUGIN discourse-calendar] Путь свойства `loading` использовался в шаблоне `discourse/plugins/discourse-calendar/discourse/templates/admin-plugins-calendar.hbs` без указания `this`. Такое поведение по умолчанию устарело: все свойства должны обращаться к `this` при использовании в шаблоне: {{this.loading}}
Как и в случае с любыми другими устареваниями, мы будем постепенно повышать заметность этого предупреждения, пока в конечном итоге не удалим адаптер обратной совместимости. В настоящее время мы ориентируемся на второе квартал 2025 года для окончательного удаления, но скорректируем эту дату на основе реальных данных.
Обновление вашего кода
Для небольших тем и плагинов вы можете вручную обновить шаблоны, добавив this. перед именем любого свойства.
Чтобы облегчить переход для крупных тем и плагинов, мы внедрили новое правило для ember-template-lint, которое включает автоматический исправитель.
Таким образом, если вы используете последнюю версию нашей стандартной конфигурации линтинга (согласно скелету плагина и скелету темы), то весь затронутый код будет автоматически обновлён при следующем запуске ember-template-lint --fix.
Если у вас есть какие-либо вопросы или опасения, пожалуйста, сообщите нам об этом ниже!