Lightning コンポーネント開発 TIPS: Apex を呼ばずに SObject のメタデータを取得する


Lightning コンポーネントから Apex を呼ばずに SObject のメタデータを取得する方法を偶然見つけたのでメモ。
もう getDescribe しなくて良くなったかもしれない。

ケースオブジェクトのメタデータを取得する

lightning:recordEditForm は指定したオブジェクトのメタデータを内部的に取得しており、onLoad イベントでそのメタデータにアクセス出来るみたいです。
また、選択リストのオプションや参照先のオブジェクトの情報は、lightning:recordEditForm 内で lightning:inputField で指定すると取得できました。

RetrieveMetadata.cmp
<aura:component implements="flexipage:availableForAllPageTypes" access="global" >
    <lightning:recordEditForm objectApiName="Case" onload="{!c.onLoad}" >
        <lightning:inputField fieldName="Id" />
        <lightning:inputField fieldName="Status" />
    </lightning:recordEditForm>
</aura:component>
RetrieveMetadataController.js
({
    onLoad: function(c, e, h) {
        const recordUi = e.getParam("recordUi");
        console.log(JSON.stringify(recordUi));
    },
})

取得出来るメタデータ情報の例

長すぎるので最初の少しだけ。