DataVでは、コールバックIDは、アセットがユーザー操作に応答したとき、または自動的に更新をトリガーしたときに他のアセットに渡されるパラメーターです。 このパラメーターは、他のアセットでのデータクエリ中に動的変数として使用できます。 このトピックでは、例としてティッカーボードウィジェットを使用して、コールバックIDの使用方法を示します。
手順
ログイン DataVコンソール
視覚化アプリケーションを選択し、[編集] をクリックして、[キャンバスエディタ] ページに移動します。
TicketCard MakerおよびTitleウィジェットをキャンバスに追加します。
ティッカーボードコンポーネントを選択し、エディターの右側にある [インタラクティブ] タブをクリックします。
説明DataVは、コールバックIDの独立した編集領域を提供します。前の図の [インタラクティブ] パネルです。 これにより、コールバックID機能を明確かつ迅速に使用できます。
[現在の値の変更] の横にある [有効化] を選択します。 変数にバインドされている変数の名前を変更します。
説明変数名がincomeに変更された後、incomeを使用して、コールバックIDに応答する必要があるアセットのパラメーター値を取得できます。
異なるパラメータを区別するために、異なるアセットに異なる変数名を設定できます。
応答するコールバックIDのアセットをクリックします。 [データ] ページのデータソース編集ボックスで、: Variable nameを設定した変数に設定します。 たとえば、:incomeパラメーターを設定できます。 例として、Titleウィジェットを使用します。
説明[データソースタイプ] パラメーターが [静的データ] または [CSVファイル] に設定されている場合、コールバックIDはサポートされません。
SQLモード
select :income as value
select city from test_id_3 where id = :income
説明income
は設定したコールバックID、value
はコールバックIDの値を受け取るカスタムフィールドです。id
とcity
はデータベースのフィールドで、test_id_3
はデータベースのデータテーブルのテーブル名です。
APIモード
https:// api.test?id=:income&city=:mycity
説明income
とmycity
は設定したコールバックidで、id
とcity
はデータベースのフィールドです。
高度な機能
カスタムフィールドの設定
ティッカーボードウィジェットを選択し、[データ] タブをクリックします。
[データソースの設定] をクリックします。
値が123の静的データに
id
フィールドを追加します。[インタラクション] タブで、[フィールドの作成] をクリックします。
[フィールド] 列に
id
を入力します。 [バインド変数] 列に変数名を入力します。説明この変数は、field値とBind to variableパラメーターの値の両方を指定した後にのみ有効になります。
コールバックIDのデフォルト値の設定
URLでリクエストパラメーターを指定して、コールバックIDのデフォルト値を設定します。 例:
http://datav.aliyun.com/screen/000000?myid=123
000000
はプロジェクトIDです。 このURLを介して視覚化アプリケーションにアクセスすると、コールバックIDのmyid
の値は、ページが開かれると同時に123に設定されます。 複数のコールバックIDはアンパサンド (&) で接続されています。 次の例では、コールバックIDのmyid
とデフォルト値のincome
の両方が設定されています。
http://datav.aliyun.com/screen/000000?myid=123&income=1000
000000
はプロジェクトIDです。
よくある質問
Q: キャンバス編集ページでコールバックIDを設定し、データクエリが失敗した後にコールバック値を取得できない場合はどうすればよいですか?
A: キャンバス編集ページは、イベントをトリガーしてコールバック値を取得できません。 したがって、リクエストは失敗します。 次のいずれかの方法でリクエストの戻り値を表示できます。
プロジェクトをプレビューします。 ブラウザコンソールの [ネットワーク] で、またはアセット表示モードから直接、リクエストの戻り値を表示します。
プロジェクトを編集します。 ビジュアルアプリケーションのURLの横にテストパラメーターを追加して、データをテストします。
https://datav.aliyun.com/admin/screen/99999? parameter name=parameter value