我有一个函数,每次打开编辑器时都会设置一个名为 project_task 的对象。
我之所以这样实现,是因为我在 events 插件中看到了类似的做法:
https://github.com/paviliondev/discourse-events/blob/master/assets/javascripts/discourse/connectors/composer-fields/composer-controls-event.js.es6
我现在遇到的问题是我的对象并不总是存在。看起来当编辑器内容发生变化时,该函数并不总是执行。如果我在不同主题的不同草稿之间来回切换,该函数不会被再次调用,因此依赖该对象存在的代码就无法正常工作了。
我的问题是:如果我想在每次用不同主题打开编辑器,或者首次打开编辑器时都设置这个对象,我应该使用哪个函数?我想确保这个对象始终存在。
编辑:
这是我目前解决问题的方法:
但这仍然不够完美,因为当我们在另一个主题上点击“编辑”时,它会强制我们丢弃当前的草稿,有时甚至没有警告。(这可能是因为我保存草稿的功能没有 100% 正常工作,或者我只是点击太快,草稿还没来得及保存。)
我想这目前就是编辑器的默认行为。我刚刚在这个论坛中验证了这一点:同一时间只能有一个编辑草稿。
当我在这个论坛中点击“新主题”时,它允许我保存内容,所以看起来可以同时拥有一个编辑草稿和一个新草稿。
我又找到了这个讨论帖:
看起来这是编辑器原本设计的行为。
对我来说,这看起来非常直观,所以我一开始以为是个 bug。当它强制我选择“丢弃”或“取消”时,我最初并没有看到错误提示,因为我根本没意识到打开的草稿数量是有限制的。
2 个赞