Así que estoy trabajando para convertir un archivo app.js
principal de ellos a Ember 4 y javascript nativo. Mi pregunta es cómo manejan las personas la modificación de cosas como la clase Route
. Mi porción actual de códigos se ve así.
Route.reopen({ //breadCrumb: null currentRouteModel: function () { return this.modelFor(this.routeName); } });
Quiero decir, supongo que puedo reescribir el caso de instancia del método en todas partes para hacer exactamente lo que está devolviendo, pero quería ver qué está haciendo la gente. También tengo un Component
reabierto en app.js
que necesito arreglar en la migración.
lo principal que he visto hacer a la gente es una de dos cosas:
Un decorador de clase se vería así (y solo funcionaría en JS, y TypeScript no sabe cómo funciona la herencia "quizás" con los decoradores de clase (está bien, técnicamente "funcionaría" en TS, pero obtendría tipo -errores)):
// usage @withCurrentRouteModel export default class MyRoute extends Route {} // implementation function withCurrentRouteModel(OriginalRoute) { return class extends OriginalRoute { @service router; get routeName() { return this.router.currentRouteName; } get currentRouteModel() { this.modelFor(this.routeName); } } }
Agregué un uso del RouterService
porque no estaba familiarizado con routeName