機械翻訳について

未保存の変更を検出するための変数の追跡

applicationで未保存の変更を検出する方法として、変数の状態の変更を追跡できます。 変数のトラッキングでは、値が変更されるたびに"dirty"とマークされます。つまり、変数の現在の値が初期値と異なる場合です。 次に、ダーティ変数を問い合せて適切なレスポンスをトリガーするアクション・チェーンを構築できます。

ユーザーがページを離れる前に保存されていない変更をユーザーに通知するとします : トラッキング用のページ変数を設定し、次のようにアクション・チェーンを作成します:
  • 「ダーティ・データ・ステータスの取得」アクションを使用して、アクションの現在のスコープ内のダーティ変数および次のコンテナ内のダーティ変数を問い合せます
  • ダーティ変数が存在する場合は、何らかのアクションを実行します。たとえば、通知の起動アクションを使用してメッセージを表示します。 値が更新されたが初期値に戻された変数はダーティとはみなされないことに注意してください。

トラッキング用に変数を有効にするには:

  1. 「変数」タブを開き、状態を追跡する変数にアクセスします。
    アプリ、フロー、ページ、フラグメントおよびレイアウトで、SDP変数および定数を除くすべてのタイプの変数について、変数の状態の変更を追跡できます。
  2. 変数のプロパティ・ペインで、「ダーティ・データの動作」リストから「トラック」を選択します。 デフォルトは「なし」で、変数の状態が追跡されないことを示します。

  3. トラッキング用の変数が有効になっている場合は、「ダーティ・データ・ステータスの取得」アクションを使用して、可変状態の変更を問い合せ、適切なアクションを実行します。

    ダーティ・データ・ステータスの取得アクションは、現在のスコープ内のダーティ変数および内部内のコンテナ内のダーティ変数を問い合せるため、そのアクション・チェーンのスコープがトラッキングされる変数に対して正しいことを確認してください。 たとえば、ページ上の未保存の変更をチェックする場合は、追跡変数および対応するアクション・チェーンをページ・レベルで定義できます。 ページにフラグメント、レイアウト、またはその両方が含まれている場合は、それらもチェックされます。

    詳細については、「使用済データの取得ステータス処理の追加」を参照してください。

  4. 追跡変数の変更をダーティとしてフラグ付けしない場合は、「ダーティ・データ・ステータスのリセット」処理を使用してダーティ状態をリセットできます。 これを行う場合のいくつかのシナリオを次に示します:
    • 変数の初期値が"0"で、RESTコールによって"1"に変更されるとします。 この変更をダーティとしてトラッキングしない場合は、ダーティ・データ・ステータスのリセット・アクションをコールすると、変数のダーティ・データ状態がリセットされ、"1"が新しい初期値とみなされます。
    • たとえば、ユーザーが変更を保存または取消できるページがあるとします。 ユーザーが取消ボタンをクリックして変更内容を保存しない場合は、追跡変数の状態をリセットして、変更内容がダーティと見なされなくなることがあります。

    ノート:

    ダーティ・データ・ステータスのリセット・アクションをアクション・チェーンに追加すると、アクション・チェーンが起動されるスコープ内のallトラッキングされる変数のダーティ状態と、その中のコンテナがリセットされることに注意してください。 たとえば、アクション・チェーンがページレベルで定義されている場合、ページレベルで追跡される全ての変数がリセットされます。 ページにフラグメント、レイアウト、またはその両方が含まれている場合、それらのスコープ内の追跡変数もリセットされます。

    ダーティ・データ・ステータスのリセット・アクションを含むアクション・チェーンに定義するスコープがユース・ケースに適していることを確認してください。

    詳細については、「ダーティ・データ・ステータスのリセット処理の追加」を参照してください。