P粉7647859242023-08-04 00:36:22
@Jared の助けを借りて、この問題を解決しました。
localStorage を使用してモデルの現在の状態を保存し、別のページにリダイレクトするときにそれを再読み込みしました。
最終的に、localStorage オブジェクトからデータを読み取って保存する save... と load... という 2 つの主要な関数があります。 Jared がコメントで述べたように、JSON は関数を文字列化できないため、モデルのすべてのデータ (isLogged 変数など) を保存する data というオブジェクトを作成しました。
これで、モデルのデータにアクセスしたいときはいつでも、まずそのインスタンスを取得します: let model = Model.getInstance(); その後、返された init 関数からメソッドにアクセスできます。 Model インスタンスをリクエストすると、まず現在のインスタンスが初期化されているかどうかが確認されます。初期化されていない場合は、load_localStorage 関数を呼び出して、localStorage からデータを読み取り、データ変数に保存します。
別のページにリダイレクトする前に、Model インスタンスの saveData 関数を呼び出してデータ オブジェクトを localStorage に保存し、リダイレクトされたページで以前に保存された状態を読み取れるようにします。
HTML ファイルには、次のような js ファイルを含めました: <script src="./../model/model.js"></script>。
おそらくもっと読みやすいコードを備えた、より良い解決策があると確信していますが、私にとってはこの方法で十分に機能します:)