VS Studio 代码编辑器中的更改代码无效

当我在本地主机上从一个 hbs 文件夹中复制代码到另一个 hbs 文件夹时,它不起作用。一些文本被插入到那里,并且出现在页面上,但它没有任何功能,刷新页面后一切都会重置,因为它只是一个字符串。

你能帮帮我吗?

例如,如果我想将 interface.hbs 中的所有内容插入到 account.hbs 中,使其具有功能,我该怎么做?

我认为回答这个问题将帮助很多人。

感谢您的回复。

事情比这复杂得多。这与您的编辑器无关,VS Code 是一个绝佳的选择。

Discourse 是一个 MVC 单页应用程序,它在前端使用 EmberJS,并使用 Routes、Models、Controllers 和 Templates。

仅更改 Templates 通常是不够的。

您最好阅读一些关于 EmberJS 的内容

但举个例子,缺少功能的一部分原因是 Controllers 不同。

这是应用程序的 JavaScript 部分的所有 Controllers:

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

这里有一个小小的复杂之处,有时 Components 会响应 Actions,Controllers 也会。

除此之外,您可能还必须担心呈现给每个不同 Routes 的 Model。

Preferences Routes 在这里,前缀为 preferences

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

事情甚至比这还要复杂,因为 Ember 看到的数据几乎总是最初由后端提供,因此会受到后端 Rails Routes、Controllers(通常还有 Models)和 Serializers 的影响。请参阅 https://guides.rubyonrails.org/

4 个赞

您是想修改核心(您几乎肯定不希望这样做),还是在开发插件?如果您还没有这样做,请查看 Discourse 插件创建入门指南 第 1 部分:创建基本插件

3 个赞

是的,因为我需要将一些函数放到别处。

您可以在插件中“从别处获取一些功能”。如果您分叉 Discourse,那么如果您想使用它超过一个月,您会后悔的。我开发了一个仪表板,允许您将 Discourse 作为插件进行安装和管理。

5 个赞

我在 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