0

私は現在、さまざまな Web アプリケーション (html/js/silverlight) をビューとしてロードする大規模なエンタープライズ Web プラットフォームで作業しているため、さまざまな種類の Web アプリケーションにアクセスするためのコンテナーまたはフレームワークのようなものです。

現在、Angular への移行を検討していますが、(少なくとも) 解決できない問題が 1 つあります。

現在の非 Angular バージョンでは、ユーザーがフレームワーク内から Application-A をロードし、テキスト ボックスに「ABC」と入力すると、別の場所に移動して Application-B をロードすることを決定し、そのアプリケーションを使用した後、アプリケーションに戻るときに移動します。 -A 彼はまだテキスト ボックスに「ABC」を表示できます。つまり、「Persistent Workspace」を持っているので、Silverlight であろうと Html/JS であろうと、ロードするすべてのアプリをメモリにロードしたままにすることができます。

このアプローチの正誤に関係なく、Angular でこれを実装する方法を思いつく人はいますか? 簡単な概要で十分です。

[アップデート]

現在ロードしている Web アプリごとに iFrame を扱っているため、ブラウザーのストレージやその他の場所に保持できるモデルがないことに注意してください。すべてのアプリが html/js ベースの場合、各ビューの状態をシリアル化できるので問題はありませんが、一部は Silverllight にあるため、それができません。これが明確になることを願っています。

皆さん、ありがとうございました。

4

1 に答える 1

0

Angular の状態をブラウザーのローカル ストレージといつでも同期できます。したがって、すべてのフォームのすべてのフィールドに一意のキーが必要であり、このようなものを使用する必要があります。

または、ステータスを保存する各コントローラー内から$routeChangeStartイベント ( docs )をリッスンすることもできます。次に、コントローラーは、その状態をローカルストレージにシリアル化する (またはシリアル化しない) ことを決定できます。コントローラーの初期化時に、保存された状態を取得する必要があります。

ブラウザのローカル ストレージを含むソリューションはサーバーには影響しませんが、ユーザーが別のコンピュータを使用している場合は利用できません。それ以外の場合は、以前と同じようにルート イベントをリッスンする必要がありますが、「永続的なワークスペース」をサーバーと同期する必要があります (時間がかかり、開発時間が長くなります)。

于 2013-09-17T12:10:53.347 に答える