注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
変数エディターで定義した変数は、Slate アプリケーション全体でアクセスできます。クエリやウィジェットで参照したり、イベントや URL を通じて値を設定したりすることもできます。
変数に使用できるデータ型は、Number、String、Boolean、Array、Object、Null です。
変数を作成するには、以下の手順に従います。
Slate は変数名の競合を検出し、有効な名前が入力されるまで変数を保存できないようにします。 共有変数の名前は、すべてのページ、ウィジェット、イベント、クエリ、関数を通じて一意である必要があります。 ローカル変数の名前は、ページ内で一意である必要があり、環境変数の名前と競合することはできません。
変数の値は、ページを読み込み直しても保持されるわけではありません。Slate アプリケーションを再読み込みすると、変数のデフォルト値が使用されます。 ページを読み込み直しても変数の値を保持するには、ユーザーストレージ変数を使用します。

変数エディターには、すべての変数のページスコープ、名前、デフォルト値が表示されるだけでなく、イベントや URL から直接変更された場合に確認できるよう、変数の現在の値が読み取り専用で表示されます。
変数パネルでは、テーブル形式のデータを変数として保存できます。スプレッドシートエディターでデータを直接入力するか、CSV ファイルをアップロードできます。以前にデータセットパネルで管理していたデータセットは、現在は共有変数として保存され、同じ機能を引き続き利用できます。
テーブル形式の変数を作成するには、以下の手順に従います。
{"column1": ["row1", "row2"], "column2": ["row1", "row2"]})を入力してテーブル構造を初期化するか、値が空の場合はテーブルタブを直接選択します。テーブルタブには、データを直接編集できるスプレッドシートエディターが用意されています。
このタブは、変数の値が空、{}、または { columnName: [value1, value2, ...], ... } 形式の列指向 JSON の場合に有効になります。すべての列の配列は同じ長さである必要があります。変数に別の形式([{...}, {...}] のような行指向 JSON など)が含まれている場合、テーブルタブは無効になります。

以下の手順で CSV ファイルをアップロードし、テーブル形式の変数にデータを入力できます。
スプレッドシートエディターは、以下の機能をサポートしています。
Slate アプリケーションには、デフォルトで 2 MB のサイズ制限があります。CSV ファイルのサイズもこの制限に算入されるため、大きな CSV ファイルのアップロードは避けてください。アプリケーションがサイズ制限を超えると、変更を保存できなくなります。大きなデータセットの場合は、クエリまたはオントロジー SDKを使用してデータを取得することを検討してください。
イベントを使用して、変数に新しい値を設定できます。すべての変数には、.set イベントが自動的に用意されます。変数の値を更新するには、イベントの内容で新しい有効な値を返すだけです。イベントのロジックでは、変数の現在の値を入力として使用することもできます。また、更新時に変数の値のデータ型を変更することもできます(文字列から数値への変更など)。ただし、これにより変数の依存関係が壊れる可能性があります。
以下の例では、ユーザーが w_button_next_page ボタンをクリックするたびに、v_page_number 変数が更新されます。

URL クエリパラメーター(Slate ページの状態を設定するために URL に追加する情報)で変数を使用できます。URL パラメーターは常にデフォルトのパラメーターをオーバーライドします。
通常、URL に変数を追加するには、以下の構文を使用します。
?variableName=value?variableName=value&otherVariableName=otherValueクエリパラメーターは大文字と小文字を区別します。また、URL クエリパラメーターから取得した変数の値は、渡された値が数値、ブール値、オブジェクトであっても文字列になります。これらの値は、Handlebar ヘルパーまたは関数を使用して、目的のデータ型に変換できます。
以下の例では、ドロップダウンウィジェットで変数を使用します。小惑星に関する仮想のデータセットがあることを前提としています。
Dropdown variables example という名前の新しいアプリケーションを作成します。asteroidNames という名前の新しいクエリを作成し、データソースを asteroids に設定して、以下のクエリ文を入力します。Copied!1SELECT name FROM allnamed;
astro とし、デフォルト値を " "(空の文字列)に設定します。
</> ボタンを選択して生タブに切り替え、selectedValue の値を null から "{{astro}}" に更新します。selectedValue には、現時点で空の文字列である astro 変数が割り当てられているため、ドロップダウンメニューには初期状態で値が表示されないことを確認します。
selectedValue を指定するには、URL で変数 astro の値を設定できます。URL の末尾に ?astro=Flora を追加し、Enter キーを押します。小惑星の名前は大文字と小文字を区別します。URL は https://<HOSTNAME>:<PORT>/edit/documents/dropdown-global-variables?astro=Flora となり、ドロップダウンには初期状態で「Flora」が表示されます。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 | ユーザーのユーザー名を返します。 |
| window.origin | 現在の URL のオリジンを返します。 |
次の例では、$global 変数のさまざまな属性を使用して、適切な言語でユーザーに挨拶します。
// 'de' はドイツ語のロケールを表します
// 英語がデフォルトの言語です
if ({{$global.locale}} == 'de') {
return "Willkommen " + {{$global.user.firstName}}
} else {
return "Welcome " + {{$global.user.firstName}}
}
Slate の sl_user_storage 変数は、ページの読み込み時にデフォルトにリセットされるほかの変数とは異なり、アプリケーションを読み込んでもユーザーごとの値を保持します。
ユーザーストレージ変数を使用すると、アプリケーションの作成者は、特定のアプリケーションに関するユーザー設定など、ユーザーごとの情報をアプリケーションのコンテキスト内に保存できます。
イベントを使用してユーザーストレージに値を保存でき、アプリケーション内のセッションをまたいでアクセスできます。ユーザーストレージの容量は 10 kB に制限されており、slate.setUserStorage アクションで設定できます。ユーザーが複数のブラウザータブまたはウィンドウでアプリケーションを操作している場合は、slate.refreshUserStorage を呼び出すことができます。1つのタブまたはウィンドウでストレージに新しい値を設定した場合、更新アクションを呼び出すことで、その値をもう一方のウィンドウに取得できます。
slate.ready イベントが発火した時点では、sl_user_storage が完全に読み込まれていない場合があります。ユーザーストレージの読み込み後にローカル変数を初期化するには、slate.userStorageChanged イベントを使用します。このイベントは sl_user_storage が更新されたときに発火し、{{slEventValue}} を通じて新しい値を渡します。
次の例では、ユーザーが希望する宛先を userPreferences JSON オブジェクトに書き込みます。その後、アプリケーションの読み込み時にユーザー設定が読み込まれ、アプリケーションのランディングページにユーザーごとの希望する宛先が表示されます。

ホームドキュメントページのローカル変数を Marketplace パラメーターとして指定すると、ユーザーは Marketplace を通じて Slate アプリケーションをインストールする際に、その値をカスタマイズできます。
変数を Marketplace パラメーターとして指定するには、次の手順を実行します。
変数パネルには、Marketplace パラメーターとして設定された変数を示すインジケーターが表示されます。Marketplace パラメーター変数の名前を変更したり削除したりすると、Slate は設定を同期して保持します。