该插件将一个 i-frame 插入到 Discourse 中,您可以在 此处 找到它。
我尽量将其保持在最新版本,因此破坏性更改是最近发生的。我们目前运行的是 3.3.0.beta1-dev。
在控制台中,我收到 3 条错误消息,如下所示:
docuss.js:225 Uncaught (in promise) ReferenceError: Ember is not defined
at docuss.js:225:1
最有可能的是,这个 Ember 对象已在 Discourse 的最新版本中从 Discourse API 中移除,因此此错误是在 Discourse 升级影响到这些对象之后出现的。
这是我所做的所有修复:
更改 1
assets\javascripts\discourse\initializers\docuss.js.es6
第 232 行
旧:
const afterRender = res =>
new Promise(resolve => {
// @ts-ignore
Ember.run.schedule('afterRender', null, () => resolve(res))
新:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
更改 2
assets\javascripts\discourse\lib\DcsIFrame.js.es6
第 858 行
旧:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
})
新:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
})
更改 3
assets\javascripts\discourse\lib\onDidTransition.js.es6
第 239 行
旧:
const afterRender = res =>
new Promise(resolve => {
Ember.run.schedule('afterRender', null, () => resolve(res))
新:
import { schedule } from '@ember/runloop'
const afterRender = res =>
new Promise(resolve => {
schedule('afterRender', null, () => resolve(res))
这清除了控制台中的所有错误消息,但产生了一系列新的错误消息:
Discourse v3.3.0.beta1-dev — https://github.com/discourse/discourse/commits/4c7d58a883 — Ember v5.5.0
app.js:197 Uncaught ReferenceError: Ember is not defined
at s.callback (docuss.js:210:1)
at s.exports (loader.js:106:1)
at requireModule (loader.js:27:1)
at y (app.js:171:18)
at w (app.js:194:19)
at app.js:157:29
at e.start (app.js:51:5)
at HTMLDocument.<anonymous> (start-app.js:5:7)
at discourse-boot.js:20:12
at discourse-boot.js:1:1
如果插件已启用,您可以在此处找到一个实时平台,以防万一有帮助
这个问题是否有人遇到过 Ember API 对象更改的问题?非常感谢您能提供任何修复建议。