Изменение кода не работает в редакторе VS Studio Code

Когда я беру какой-то код из папки hbs на localhost и помещаю его в другую папку hbs, он не работает. Там вставляется какой-то текст, и он отображается на странице, но у него абсолютно нет функциональности: после обновления страницы всё сбрасывается, потому что это просто строка.

Можете помочь?

Например, если я хочу вставить всё из interface.hbs в account.hbs, чтобы это имело функциональность, что мне нужно сделать?

Думаю, ответ на этот вопрос поможет многим людям.

Спасибо за ответ.

Всё немного сложнее. Это не связано с вашим редактором — VS Code отличный выбор.

Discourse — это одностраничное приложение (SPA), построенное по архитектуре MVC, которое использует EmberJS на фронтенде и опирается на Routes, Models, Controllers и Templates.

Изменения только в Templates обычно недостаточны.

Вам настоятельно рекомендуется изучить EmberJS.

Например, одна из причин отсутствия функциональности заключается в различиях в Controllers.

Вот все Controllers для этой части JavaScript-кода приложения:

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

Небольшая сложность заключается в том, что на действия могут реагировать как Components, так и Controllers.

Кроме того, вам, возможно, придётся учитывать, какая модель передаётся в каждый из этих различных Routes.

Routes для настроек находятся здесь с префиксом preferences:

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

Всё становится ещё сложнее, так как данные, с которыми работает Ember, почти всегда изначально поступают с бэкенда и поэтому зависят от Rails Routes, Controllers (и часто Models) и Serializers на бэкенде. См. https://guides.rubyonrails.org/

Пытаетесь ли вы внести изменения в ядро (вы почти наверняка не хотите этого делать) или разрабатываете плагин? Если вы еще не сделали этого, ознакомьтесь с Руководством для начинающих по созданию плагинов Discourse, часть 1: Создание базового плагина.

Да, потому что мне нужно перенести некоторые функции в другое место

Вы можете «вынести некоторые функции в отдельное место» с помощью плагина. Если вы сделаете форк Discourse, то пожалеете об этом, если захотите использовать его дольше месяца. Я разработал панель управления, которая позволяет устанавливать и управлять Discourse в виде плагина.

Я загрузил плагин в Discourse и заменил файл в plugins/notebook-main/assets/javascripts/discourse/controllers/notebook.js.es6. Я заменил этот файл на необходимый интерфейс и сделал то же самое с шаблоном hbs.

Всё работает теоретически, за исключением того, что мы не хотим сохранять изменения.

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