1. 概要
YiDA の JS アクションパネルを使用して、ビジネスロジックや条件判定を実装する JS コードを記述します。
アクションパネルを活用することで、コードの整理・再利用や、複雑なインタラクションの構築が容易になります。
- JS パネルに記述したロジックは、原則として過去のデータには適用されません。
2. アクションパネルでのコード入力
export で宣言された関数はアクションパネルから認識され、選択および呼び出しが可能です。
以下のコードをご参照ください。
備考:
コンポーネントのアクションパネルで認識されるのは、export function xxx() {} の形式で宣言された関数のみです。エクスポートするメソッド名は一意である必要があります。
パネル内でアクションを手動で取得・呼び出す場合は、this.methodName(); を直接呼び出します。
2.1 アクションパネルでのアクション連携
YiDA のほとんどのコンポーネントはアクション連携に対応しています。
アクション連携により、コンポーネントの操作をアクションパネルで定義した関数に紐付けできます。
2.2 コールバック関数のパラメータ取得
コールバック関数に設定したパラメータを取得します。
(1) アクション設定でパラメータを設定
アクションを作成します。
(2) 以下の方法でパラメータを取得します
3. API 使い方ガイド
詳細は https://developers.aliwork.com/docs/api/about をご参照ください。
4. JS コードのデバッグ方法
Chrome の Devtools を使用してデバッグします。頻繁にデバッグを行う場合は、ブラウザから YiDA にアクセスすることをおすすめします。
最もよく使用するパネルは Console、Network、Elements です。
YiDA の表示ページは React で構築されているため、React Developer Tools をインストールして YiDA の UI をデバッグすることも可能です。
4.1 コード内で debugger キーワードを使用する
JS 関数内で debugger キーワードを使用すると、実行を一時停止してデバッグできます。以下の動画では debugger の基本的な使い方を紹介しています。
4.2 サードパーティ製 JS リソースの参照方法
参照する JS リソースの安全性は必ず確認してください。 以下のコードをご参照ください。
4.3 JS の学習方法
- YiDA Developer Center
- JavaScript Garden
- JavaScript | MDN
- 推薦書籍:『Professional JavaScript for Web Developers』(最新版)
- コミュニティ: Juejin、Stack Overflow、GitHub など
5. サブフォーム API の改善
5.1 サブフォームデータの取得
5.2 サブフォームの変更検知
サブフォームデータが変更された場合、セル単位の編集に加えて、数式計算、データ連動、外部からの代入もサブフォームの onChange イベントをトリガーします。変更元を識別できるように、どのセルのデータが変更されたかを示す changes.fieldId が追加されています。
5.3 テーブル内のデータ変更に応じた関連行データの更新
updateItemValue API を使用してセルに値を代入します。
例として、デバイスが変更された際に、この API を使用して現在のサブフォームの残りの情報を自動入力します。
従来のように getComponent().setValue で 1 つずつ値を代入する必要はなくなりました。従来の方式では、非同期シナリオにおいてフォームの完全な更新を保証できませんでした。
6. よくあるエラー
6.1 Cannot read property ’$’ of undefined.
6.2 This request has been blocked; the content must be served over HTTPS
YiDA のドメインは https://www.yidaapps.com です。ブラウザのセキュリティ制限により、リクエストできるのは HTTPS エンドポイントのみで、HTTP エンドポイントは許可されません。http://192.168.xxx のようなローカルエンドポイントもブロックされます。
重要:
API サービスを提供するには、エンドポイントが以下の要件を満たす必要があります。
-
有効な証明書付きの HTTPS プロトコルを使用すること。
-
www.yidaapps.com からの クロスオリジンアクセス を許可すること。許可しない場合、クロスサイトポリシーエラーが発生します。