注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
変数エディターで定義した変数は、Slateアプリケーション全体でアクセス可能です。クエリやウィジェットで参照したり、イベントやURLを通じて値を設定したりできます。
変数の有効な型は、Number
、String
、Boolean
、Array
、Object
、Null
です。
変数エディターは、各変数の名前とデフォルト値を表示するだけでなく、イベントやURLを使用して変更された場合の変数の現在の値を読み取り専用で表示します。
イベントを使用して、変数の新しい値を設定できます。すべての変数は自動的に .set
イベントを提供します。変数の値を更新するには、イベントコンテンツに新しい、合法的な値を返すだけです。イベントロジックは、変数の現在の値を入力として使用することもできます。また、変数値の型を更新する際に変更することもできます(例:StringからNumberへ)が、これにより変数の依存関係が壊れる可能性があります。
以下の例では、v_page_number
変数がw_button_next_page
ボタンをクリックするたびに更新されます。
URLクエリパラメーター(URLに追加されるSlateページの状態を設定するための追加情報)で変数を使用できます。URLパラメーターは、デフォルトパラメーターを常に上書きします。
一般的に、URLに変数を追加するために次の構文を使用します。
?variableName=value
?variableName=value&otherVariableName=otherValue
クエリパラメーターは大文字と小文字が区別されることに注意してください。さらに、URLクエリパラメーターから取得した変数値は、渡される値が数値、ブーリアン、オブジェクトであっても文字列になります。これらの値は、HandlebarヘルパーやFunctionsを使用して、所望の型に変換できます。
Slateは、グローバル変数とユーザーストレージ変数の2種類の内部変数を提供しています。これらの変数は特別な挙動を持ち、URLを介して設定することはできません。
$global
変数は、環境固有の情報にアクセスするためのものです。
変数 | 説明 |
---|---|
locale | ユーザーのセッションの言語ロケールを返します。 |
app.isEditMode | アプリが編集モードの場合は true を返し、表示モードの場合は false を返します。 |
app.rid | Slateドキュメントの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
は、ユーザーが複数のタブでアプリケーションを操作しているときに呼び出すことができます。ストレージを新しい値に設定した場合、この値を再読み込みアクションを呼び出すことで他のウィンドウに取り込むことができます。
次の例では、ドロップダウンウィジェットの変数を使用し、想定上の小惑星に関するデータセットを前提としています。
dropdown
global
variables
という新しいアプリケーションを作成します。asteroidNames
という新しいクエリを作成し、データソースを asteroids
に設定し、次のクエリ文を入力します:Copied!1 2
-- 全ての名前をallnamedテーブルから選択します SELECT name FROM allnamed;
クエリを保存するには、更新をクリックしてください。
変数エディターを開き、新しい変数を追加します。名前は astro
にして、デフォルト変数は空文字列の "
"
にします。
アプリケーションにドロップダウンウィジェットを追加します。
作成したクエリから小惑星の名前を取得して、ドロップダウンに表示します。
はじめは selectedValue
が変数 astro
に設定されているため、ドロップダウンに値が表示されないことに注意してください。現在、astro
は空文字列です。
アプリケーションを保存します。
ドロップダウンの開始時に selectedValue
を指定するには、URLで変数 astro
に値を設定できます。URL に ?astro=Flora
を追加し、Enter キーを押します。小惑星の名前は大文字と小文字が区別されることに注意してください。
URL は https://<HOSTNAME>:<PORT>/edit/documents/dropdown-global-variables?astro=Flora
のようになり、ドロップダウンには最初に「Flora」が表示されます。