Alterar código não funciona no editor VS Studio code

Quando pego um código na pasta hbs em localhost e o coloco em outra pasta hbs, ele não funciona. Alguns textos são inseridos lá e estão naquela página, mas não têm absolutamente nenhuma funcionalidade, após atualizar a página tudo é redefinido porque é apenas como uma string.

Você pode me ajudar?

Se, por exemplo, eu quisesse inserir tudo de interface.hbs em account.hbs para que tivesse funcionalidade, o que eu deveria fazer?

Acho que responder a essa pergunta ajudaria muitas pessoas.

Obrigado pela sua resposta.

As coisas são um pouco mais complicadas do que isso. Isso não está relacionado ao seu editor, o VS Code é uma excelente escolha.

O Discourse é um aplicativo de página única MVC que usa EmberJS no front-end e utiliza Routes, Models, Controllers e Templates.

Alterar apenas os Templates geralmente não é suficiente.

Seria muito bom para você ler sobre EmberJS.

Mas, por exemplo, parte do motivo pelo qual não há funcionalidade é porque os Controllers são diferentes.

Aqui estão todos os Controllers para esta parte do back-end JavaScript do aplicativo:

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

A pequena complicação aqui é que, às vezes, os Components respondem a ações, assim como os Controllers.

Além disso, você pode ter que se preocupar com qual modelo é apresentado a cada uma dessas diferentes Routes.

As Routes de preferências estão aqui com o prefixo preferences:

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

Isso fica ainda mais complexo, pois os dados que o Ember vê são quase sempre entregues originalmente pelo back-end e, portanto, afetados pelas Routes, Controllers (e muitas vezes Models) e Serializers do Rails no back-end. Veja https://guides.rubyonrails.org/

4 curtidas

Você está tentando fazer alterações no core (você quase certamente não quer fazer isso) ou está desenvolvendo um plugin? Se você ainda não o fez, dê uma olhada em Guia para Iniciantes na Criação de Plugins do Discourse Parte 1: Criando um plugin básico.

3 curtidas

Sim, porque preciso obter algumas funções em outro lugar

Você pode “obter algumas funções em outro lugar” em um plugin. Se você fizer um fork do Discourse, vai se arrepender se quiser usá-lo por mais de um mês. Desenvolvi um painel que permite instalar e gerenciar o Discourse como um plugin.

5 curtidas

Fiz o upload de um plugin para o Discourse e substituí o arquivo plugins/notebook-main/assets/javascripts/discourse/controllers/notebook.js.es6 pelo arquivo de interface necessário + fiz o mesmo com o template hbs.

Tudo funciona em teoria, exceto que não queremos salvar as alterações.

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