外部 JavaScript ライブラリの使用
静的リソースとしてアップロードした JavaScript ライブラリを参照するには、.cmp または .app マークアップで <ltng:require> タグを使用します。
このフレームワークのコンテンツセキュリティポリシーでは、外部 JavaScript ライブラリを Salesforce 静的リソースにアップロードすることが義務付けられています。静的リソースについての詳細は、Salesforce オンラインヘルプの「静的リソースとは?」を参照してください。
次に <ltng:require> の使用例を示します。
1<ltng:require scripts="/resource/resourceName"
2 afterScriptsLoaded="{!c.afterScriptsLoaded}" />resourceName は、静的リソースの [名前] です。フレームワークは現在、Visualforce で使用可能な $Resource グローバル変数をサポートしていません。管理パッケージでは、リソース名にパッケージ名前空間プレフィックス (/resource/np_resourceName など) を含める必要があります。
スクリプトが読み込まれると、クライアント側コントローラの afterScriptsLoaded アクションがコールされます。
スクリプトの読み込みに関する考慮事項は次のとおりです。
- スクリプトのセットの読み込み
- リソースのセットを読み込むときは、scripts 属性にリソースのカンマ区切りリストを指定します。
- 読み込み順序
- スクリプトはリストに記載された順に読み込まれます。
- 1 回のみの読み込み
- スクリプトが同一のコンポーネント内または異なるコンポーネント間の複数の <ltng:require> タグに指定されている場合、一度だけ読み込まれます。
- 並列読み込み
- 相互に連動していないスクリプトのセットが複数ある場合は、並列読み込み用の <ltng:require> タグを使用します。
- カプセル化
- カプセル化および再利用を確実に行うには、JavaScript ライブラリを使用する .cmp または .app リソースのそれぞれに <ltng:require> タグを追加します。
<ltng:require> には、CSS リソースのリストを読み込む styles 属性もあります。scripts と styles 属性は 1 つの <ltng:require> タグで設定できます。
表示後の HTML 要素の操作に外部ライブラリを使用している場合、afterScriptsLoaded を使用してクライアント側コントローラに結び付けます。次の例では、静的リソースとしてアップロードされた Chart.js ライブラリを使用してグラフを設定しています。
1<ltng:require scripts="/resource/chart"
2 afterScriptsLoaded="{!c.setup}"/>
3 <canvas aura:id="chart" id="myChart" width="400" height="400"/>コンポーネントのクライアント側コントローラは、コンポーネントの初期化と表示の後にグラフを設定します。
1setup : function(component, event, helper) {
2 var data = {
3 labels: ["January", "February", "March"],
4 datasets: [{
5 data: [65, 59, 80, 81, 56, 55, 40]
6 }]
7 };
8 var el = component.find("chart").getElement();
9 var ctx = el.getContext("2d");
10 var myNewChart = new Chart(ctx).Line(data);}