当我在本地主机上从一个 hbs 文件夹中复制代码到另一个 hbs 文件夹时,它不起作用。一些文本被插入到那里,并且出现在页面上,但它没有任何功能,刷新页面后一切都会重置,因为它只是一个字符串。
你能帮帮我吗?
例如,如果我想将 interface.hbs 中的所有内容插入到 account.hbs 中,使其具有功能,我该怎么做?
我认为回答这个问题将帮助很多人。
感谢您的回复。
当我在本地主机上从一个 hbs 文件夹中复制代码到另一个 hbs 文件夹时,它不起作用。一些文本被插入到那里,并且出现在页面上,但它没有任何功能,刷新页面后一切都会重置,因为它只是一个字符串。
你能帮帮我吗?
例如,如果我想将 interface.hbs 中的所有内容插入到 account.hbs 中,使其具有功能,我该怎么做?
我认为回答这个问题将帮助很多人。
感谢您的回复。
事情比这复杂得多。这与您的编辑器无关,VS Code 是一个绝佳的选择。
Discourse 是一个 MVC 单页应用程序,它在前端使用 EmberJS,并使用 Routes、Models、Controllers 和 Templates。
仅更改 Templates 通常是不够的。
但举个例子,缺少功能的一部分原因是 Controllers 不同。
这是应用程序的 JavaScript 部分的所有 Controllers:
这里有一个小小的复杂之处,有时 Components 会响应 Actions,Controllers 也会。
除此之外,您可能还必须担心呈现给每个不同 Routes 的 Model。
Preferences Routes 在这里,前缀为 preferences:
事情甚至比这还要复杂,因为 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