El código de cambio no funciona en el editor de VS Studio Code

Cuando tomo un código en la carpeta hbs en localhost y lo pongo en otra carpeta hbs, no funciona. Se inserta algo de texto allí y está en esa página, pero no tiene absolutamente ninguna funcionalidad, después de actualizar la página todo se restablece porque es solo como una cadena…

¿Puedes ayudarme?

Si, por ejemplo, quisiera insertar todo desde interface.hbs en account.hbs para que tuviera funcionalidad, ¿qué debería hacer?

Creo que responder a esta pregunta ayudaría a mucha gente.

Gracias por tu respuesta.

Las cosas son un poco más complicadas que eso. Esto no está relacionado con tu editor, VS Code es una excelente opción.

Discourse es una aplicación de página única MVC que utiliza EmberJS en el front-end y emplea Rutas, Modelos, Controladores y Plantillas.

Cambiar solo las Plantillas generalmente no es suficiente.

Sería muy bueno que leyeras sobre EmberJS.

Pero, por ejemplo, parte de la razón por la que no hay funcionalidad es porque los Controladores son diferentes.

Aquí están todos los Controladores para esta parte del front-end de la aplicación:

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/controllers/preferences

La ligera complicación aquí es que a veces los Componentes responden a acciones, al igual que los Controladores.

Además de eso, es posible que tengas que preocuparte por qué modelo se presenta a cada una de estas diferentes Rutas.

Las Rutas de preferencias están aquí con el prefijo preferences:

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/routes

Incluso se vuelve más complejo, ya que los datos que Ember ve casi siempre son entregados originalmente por el back-end y, por lo tanto, afectados por las Rutas, Controladores (y a menudo Modelos) y Serializadores de Rails en el back-end. Ver https://guides.rubyonrails.org/

4 Me gusta

¿Está intentando realizar cambios en el núcleo (casi con toda seguridad no querrá hacer eso) o está desarrollando un plugin? Si aún no lo ha hecho, eche un vistazo a Guía para principiantes para crear plugins de Discourse Parte 1: Creación de un plugin básico.

3 Me gusta

Sí, porque necesito obtener algunas funciones en otro lugar.

Puedes “obtener algunas funciones en otro lugar” en un plugin. Si creas una bifurcación de Discourse, te arrepentirás si quieres usarla por más de un mes. Desarrollé un panel que te permite instalar y administrar Discourse como un plugin.

5 Me gusta

Subí un plugin a Discourse y reemplacé en plugins/notebook-main/assets/javascripts/discourse/controllers/notebook.js.es6, reemplacé este archivo con el archivo de interfaz necesario + hice lo mismo con la plantilla hbs.

Todo funciona en teoría, excepto que no queremos guardar los cambios.

Uncaught Error: Property set failed: object in path "model.user_option" could not be found.
    Ember 3
    save notebook:194
    _join backburner.js:995
    join backburner.js:760
    Ember 4
    _triggerAction d-button.js:137
    click d-button.js:106
    Ember 2
    _run backburner.js:1013
    _join backburner.js:989
    join backburner.js:760
    Ember 6
    jQuery 8
    initialize click-interceptor.js:15
    initialize app.js:47
    runInstanceInitializers Ember
    each dag-map.js:231
    walk dag-map.js:145
    each dag-map.js:75
    topsort dag-map.js:83
    Ember 4
    invoke backburner.js:338
    flush backburner.js:229
    flush backburner.js:426
    _end backburner.js:960
    end backburner.js:710
    _run backburner.js:1015
    _join backburner.js:989
    join backburner.js:760
    Ember 2
    jQuery 12