コンポーザーが開かれるたびに、project_task というオブジェクトを設定する関数を持っています。
この方法を採用したのは、events プラグインで同様の実装を見ていたからです。
https://github.com/paviliondev/discourse-events/blob/master/assets/javascripts/discourse/connectors/composer-fields/composer-controls-event.js.es6
現在の問題は、私のオブジェクトが常に存在しないことです。コンポーザーが切り替わっても関数が必ずしも実行されていないようです。異なるトピックのドラフト間を行き来すると、この関数は再度呼び出されないため、オブジェクトの存在に依存するコードが機能しなくなります。
質問です:異なるトピックでコンポーザーが開かれた場合、または初めて開かれた場合に、このオブジェクトを常にセットアップしたい場合、どの関数を使用すればよいでしょうか?このオブジェクトが常に存在することを保証したいのです。
編集:
現時点では、この問題を以下のように解決しました。
しかし、これはまだ完璧ではありません。別のトピックの編集ボタンを押すと、ドラフトを破棄せざるを得なくなるからです。時には警告なしにそのようになります(おそらく、ドラフトへの保存処理が100%正しく動作していないか、クリックが速すぎてドラフトがまだ保存されていなかったためでしょう)。
これは現在のコンポーザーのデフォルトの動作だと思います。このフォーラムで確認したところ、一度に開ける編集ドラフトは1つだけであることがわかりました。
このフォーラムで「新しいトピック」を押すと、内容を保存できるため、1つの編集ドラフトと1つの新規ドラフトを同時に持つオプションがあるようです。
このスレッドを再発見しました:
これはコンポーザーの意図された動作のようです。私には非常に直感的に思えたため、バグだと思いました。最初にドラフトを破棄するかキャンセルするかを強制された際のエラーメッセージが表示されなかったのは、開けるドラフトに制限があるかもしれないという考えが頭になかったためです。
「いいね!」 2