배경
Handlebars 템플릿에서 컨트롤러/컴포넌트의 프로퍼티를 참조하기 위해 {{foo}}와 같은 구문을 사용하는 경우, {{this.foo}}로 업데이트해야 합니다.
상위 정보: Property Fallback Lookup | Ember.js - Deprecations
Discourse를 Ember 4.x로 업그레이드하는 과정에서, 테마와 플러그인이 이 변경 사항을 서두르지 않아도 되도록 하위 호환성 시머(shim)를 도입했습니다. 그러나 이 시머를 무기한 유지하는 것은 현실적으로 불가능하므로, 테마와 플러그인을 최신 구문으로 업데이트해야 합니다.
비권장(Deprecation)
최신 버전의 Discourse에서 레거시 구문을 사용하면 콘솔에 비권장 메시지가 출력됩니다. 다음과 같은 형태입니다:
DEPRECATION: [PLUGIN discourse-calendar] The `loading` property path was used in the `discourse/plugins/discourse-calendar/discourse/templates/admin-plugins-calendar.hbs` template without using `this`. This fallback behavior has been deprecated, all properties must be looked up on `this` when used in the template: {{this.loading}}
다른 모든 비권장 사항과 마찬가지로, 이 경고의 가시성을 점차 높일 것이며, 궁극적으로 하위 호환성 시머를 제거할 것입니다. 최종 제거 시점은 2025년 2분기를 목표로 하고 있지만, 실제 데이터에 따라 조정될 수 있습니다.
코드 업그레이드
작은 테마/플러그인의 경우, 템플릿을 수동으로 업데이트하여 프로퍼티 이름 앞에 this.를 추가할 수 있습니다.
더 큰 테마/플러그인의 전환을 용이하게 하기 위해, 자동 수정기를 포함하는 새로운 ember-template-lint 규칙을 도입했습니다.
따라서 표준 린팅 구성의 최신 버전을 사용 중인 경우(플러그인 스켈레톤 및 테마 스켈레톤 참조), ember-template-lint --fix를 다음에 실행할 때 영향받는 모든 코드가 자동으로 업데이트됩니다.
질문이나 우려 사항이 있다면 아래로 알려주시기 바랍니다!