注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

変数に値を格納する

変数エディターで定義した変数は、Slateアプリケーション全体でアクセス可能です。クエリやウィジェットで参照したり、イベントやURLを通じて値を設定したりできます。

変数の有効な型は、NumberStringBooleanArrayObjectNullです。

変数の作成

  1. 変数をクリックして、変数エディターを開きます。
  2. 新しい変数を追加をクリックします。
  3. 名前列のテキストを選択し、変数の新しい名前を入力します。
  4. 変数のデフォルト値を入力します。入力するデータの種類によって、型が決まります。

変数エディターは、各変数の名前とデフォルト値を表示するだけでなく、イベントやURLを使用して変更された場合の変数の現在の値を読み取り専用で表示します。

イベントを通じて変数を更新する

イベントを使用して、変数の新しい値を設定できます。すべての変数は自動的に .set イベントを提供します。変数の値を更新するには、イベントコンテンツに新しい、合法的な値を返すだけです。イベントロジックは、変数の現在の値を入力として使用することもできます。また、変数値の型を更新する際に変更することもできます(例:StringからNumberへ)が、これにより変数の依存関係が壊れる可能性があります。

以下の例では、v_page_number変数がw_button_next_pageボタンをクリックするたびに更新されます。 イベントを通じて変数を更新する

URLの変数

URLクエリパラメーター(URLに追加されるSlateページの状態を設定するための追加情報)で変数を使用できます。URLパラメーターは、デフォルトパラメーターを常に上書きします。

一般的に、URLに変数を追加するために次の構文を使用します。

  • 単一の変数: ?variableName=value
  • 複数の変数: ?variableName=value&otherVariableName=otherValue

クエリパラメーターは大文字と小文字が区別されることに注意してください。さらに、URLクエリパラメーターから取得した変数値は、渡される値が数値、ブーリアン、オブジェクトであっても文字列になります。これらの値は、HandlebarヘルパーFunctionsを使用して、所望の型に変換できます。

内部変数

Slateは、グローバル変数とユーザーストレージ変数の2種類の内部変数を提供しています。これらの変数は特別な挙動を持ち、URLを介して設定することはできません。

$global変数

$global変数は、環境固有の情報にアクセスするためのものです。

変数説明
localeユーザーのセッションの言語ロケールを返します。
app.isEditModeアプリが編集モードの場合は true を返し、表示モードの場合は false を返します。
app.ridSlateドキュメントのRIDを返します。
user.domainユーザーの認証ドメインを返します。
user.emailユーザーのメールアドレスを返します。
user.familyNameユーザーの姓を返します。
user.firstNameユーザーの名前を返します。
user.groupsユーザーが所属するすべての認証グループのリストを返します。
user.idユーザーの一意の識別子を返します。
user.usernameユーザーのユーザー名を返します。

次の例では、$global変数のさまざまな部分を使用して、適切な言語でユーザーに挨拶しています。

// 'de' はドイツのロケールを表します
// 英語はデフォルトの言語です
if ({{$global.locale}} == 'de') {
    return "Willkommen " + {{$global.user.firstName}} // ユーザーの名前を返して、ドイツ語の歓迎メッセージを表示します
} else {
    return "Welcome " + {{$global.user.firstName}} // ユーザーの名前を返して、英語の歓迎メッセージを表示します
}

ユーザーのストレージ変数

SL_USER_STORAGE ユーザーストレージ変数を使用すると、アプリケーションのコンテキストで個々のユーザーの情報を保存することができます。イベントを使用すると、ユーザーストレージに値を保存し、アプリケーションのセッション間でアクセスすることができます。ユーザーストレージは、slate.setUserStorage アクションを介して設定でき、ストレージの内容は 10kB に制限されています。slate.refreshUserStorage は、ユーザーが複数のタブでアプリケーションを操作しているときに呼び出すことができます。ストレージを新しい値に設定した場合、この値を再読み込みアクションを呼び出すことで他のウィンドウに取り込むことができます。

ウィジェットの例

次の例では、ドロップダウンウィジェットの変数を使用し、想定上の小惑星に関するデータセットを前提としています。

  1. dropdown global variables という新しいアプリケーションを作成します。
  2. asteroidNames という新しいクエリを作成し、データソースを asteroids に設定し、次のクエリ文を入力します:
Copied!
1 2 -- 全ての名前をallnamedテーブルから選択します SELECT name FROM allnamed;
  1. クエリを保存するには、更新をクリックしてください。

  2. 変数エディターを開き、新しい変数を追加します。名前は astro にして、デフォルト変数は空文字列の " " にします。

  3. アプリケーションにドロップダウンウィジェットを追加します。

  4. 作成したクエリから小惑星の名前を取得して、ドロップダウンに表示します。

    dropdown-property-tab

    はじめは selectedValue が変数 astro に設定されているため、ドロップダウンに値が表示されないことに注意してください。現在、astro は空文字列です。

    dropdown-no-url-param

  5. アプリケーションを保存します。

  6. ドロップダウンの開始時に selectedValue を指定するには、URLで変数 astro に値を設定できます。URL に ?astro=Flora を追加し、Enter キーを押します。小惑星の名前は大文字と小文字が区別されることに注意してください。

    URL は https://<HOSTNAME>:<PORT>/edit/documents/dropdown-global-variables?astro=Flora のようになり、ドロップダウンには最初に「Flora」が表示されます。

    dropdown-url-param