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

値を変数に保存する

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

変数に使用できるデータ型は、Number、String、Boolean、Array、Object、Null です。

変数を作成する

変数を作成するには、以下の手順に従います。

  1. 左側のサイドバーで (x) アイコンを選択して、変数エディターを開きます。(x) アイコンにカーソルを合わせると、変数という文字が表示されます。
  2. + 新規変数を追加を選択します。
  3. 変数のページスコープを、共有(すべてのページでアクセス可能)またはローカル(変数の作成時に編集していたページでのみアクセス可能)から選択します。
  4. 名前列のテキストを選択し、変数の新しい名前を入力します。

Slate は変数名の競合を検出し、有効な名前が入力されるまで変数を保存できないようにします。 共有変数の名前は、すべてのページ、ウィジェット、イベント、クエリ、関数を通じて一意である必要があります。 ローカル変数の名前は、ページ内で一意である必要があり、環境変数の名前と競合することはできません。

  1. 変数のデフォルト値を入力します。Slate は、入力された値に基づいて変数タイプを推測します。

変数の値は、ページを読み込み直しても保持されるわけではありません。Slate アプリケーションを再読み込みすると、変数のデフォルト値が使用されます。 ページを読み込み直しても変数の値を保持するには、ユーザーストレージ変数を使用します。

変数を追加する。

変数エディターには、すべての変数のページスコープ、名前、デフォルト値が表示されるだけでなく、イベントや URL から直接変更された場合に確認できるよう、変数の現在の値が読み取り専用で表示されます。

テーブル形式の変数

変数パネルでは、テーブル形式のデータを変数として保存できます。スプレッドシートエディターでデータを直接入力するか、CSV ファイルをアップロードできます。以前にデータセットパネルで管理していたデータセットは、現在は共有変数として保存され、同じ機能を引き続き利用できます。

テーブル形式の変数を作成する

テーブル形式の変数を作成するには、以下の手順に従います。

  1. 左側のサイドバーで X アイコンを選択して、変数エディターを開きます。
  2. + 新規変数を追加を選択します。
  3. 変数のページスコープ(共有またはローカル)を選択します。
  4. 変数の名前を入力します。
  5. デフォルト値の項目に、列指向の JSON(例:{"column1": ["row1", "row2"], "column2": ["row1", "row2"]})を入力してテーブル構造を初期化するか、値が空の場合はテーブルタブを直接選択します。

テーブルタブには、データを直接編集できるスプレッドシートエディターが用意されています。

このタブは、変数の値が空、{}、または { columnName: [value1, value2, ...], ... } 形式の列指向 JSON の場合に有効になります。すべての列の配列は同じ長さである必要があります。変数に別の形式([{...}, {...}] のような行指向 JSON など)が含まれている場合、テーブルタブは無効になります。

スプレッドシートエディターに表示されたテーブル形式の変数。

CSV ファイルをアップロードする

以下の手順で CSV ファイルをアップロードし、テーブル形式の変数にデータを入力できます。

  1. 既存のテーブル形式の変数を選択するか、新しい変数を作成します。
  2. テーブルタブを開きます。
  3. アップロードオプションを使用して、コンピューターから CSV ファイルを選択します。
  4. CSV データがパースされ、スプレッドシートエディターに表示されます。

スプレッドシートエディターは、以下の機能をサポートしています。

  • セルの値を直接編集
  • 右クリックのコンテキストメニューで追加のオプションを表示
  • 行と列の追加および削除

Slate アプリケーションには、デフォルトで 2 MB のサイズ制限があります。CSV ファイルのサイズもこの制限に算入されるため、大きな CSV ファイルのアップロードは避けてください。アプリケーションがサイズ制限を超えると、変更を保存できなくなります。大きなデータセットの場合は、クエリまたはオントロジー SDKを使用してデータを取得することを検討してください。

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

イベントを使用して、変数に新しい値を設定できます。すべての変数には、.set イベントが自動的に用意されます。変数の値を更新するには、イベントの内容で新しい有効な値を返すだけです。イベントのロジックでは、変数の現在の値を入力として使用することもできます。また、更新時に変数の値のデータ型を変更することもできます(文字列から数値への変更など)。ただし、これにより変数の依存関係が壊れる可能性があります。

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

URL 内の変数

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

通常、URL に変数を追加するには、以下の構文を使用します。

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

クエリパラメーターは大文字と小文字を区別します。また、URL クエリパラメーターから取得した変数の値は、渡された値が数値、ブール値、オブジェクトであっても文字列になります。これらの値は、Handlebar ヘルパーまたは関数を使用して、目的のデータ型に変換できます。

例:ウィジェットで変数を使用する

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

  1. Dropdown variables example という名前の新しいアプリケーションを作成します。
  2. asteroidNames という名前の新しいクエリを作成し、データソースを asteroids に設定して、以下のクエリ文を入力します。
Copied!
1 SELECT name FROM allnamed;
  1. 更新するを選択してクエリを保存します。
  2. 変数エディターを開き、新しい変数を追加します。名前を astro とし、デフォルト値を " "(空の文字列)に設定します。
  3. アプリケーションにドロップダウンウィジェットを追加します。
  4. 作成したクエリから小惑星の名前を取得して、ドロップダウンに入力します。
クエリから入力されたデータを表示する、ドロップダウンウィジェットエディターのプロパティタブ。
  1. </> ボタンを選択して生タブに切り替え、selectedValue の値を null から "{{astro}}" に更新します。selectedValue には、現時点で空の文字列である astro 変数が割り当てられているため、ドロップダウンメニューには初期状態で値が表示されないことを確認します。
selectedValue が変数に設定されていることを示す、ドロップダウンウィジェットエディターの生タブ。
  1. アプリケーションを保存します。
  2. ドロップダウンの初期値として selectedValue を指定するには、URL で変数 astro の値を設定できます。URL の末尾に ?astro=Flora を追加し、Enter キーを押します。小惑星の名前は大文字と小文字を区別します。URL は https://<HOSTNAME>:<PORT>/edit/documents/dropdown-global-variables?astro=Flora となり、ドロップダウンには初期状態で「Flora」が表示されます。

Slate のシステム変数

Slate には2種類のシステム変数があり、特別な動作を持ち、URL からは設定できません。

  1. 環境変数。
  2. ユーザーストレージ変数。

環境変数

$global 変数を使用すると、環境固有の情報にアクセスできます。

属性説明
localeユーザーのセッションの言語ロケールを返します。
app.isEditModeアプリが編集モードの場合は true、表示モードの場合は false を返します。
app.ridSlate ドキュメントの 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 パラメーターとして指定すると、ユーザーは Marketplace を通じて Slate アプリケーションをインストールする際に、その値をカスタマイズできます。

変数を Marketplace パラメーターとして指定するには、次の手順を実行します。

  1. Slate アプリケーションで変数パネルを開きます。
  2. 設定するローカル変数を選択します。共有変数、および複数ページのアプリケーションのほかのページにあるローカル変数は、Marketplace パラメーターとして使用できません。
  3. 変数のメニューを選択し、Marketplace パラメーターオプションを有効にします。

変数パネルには、Marketplace パラメーターとして設定された変数を示すインジケーターが表示されます。Marketplace パラメーター変数の名前を変更したり削除したりすると、Slate は設定を同期して保持します。