- コンポーネントの属性とは、値を保存できる場所.
- 属性は、
<aura:attribute>
タグを使用して定義され、name
属性とtype
属性の値が必要.
name
属性は変数名のようなもの.
type
属性は、変数の型を示すようなもの. 例えば、String
だったり、yourCustomObject__c
とか.
- 省略可能な属性が3つある。
default
属性: デフォルト属性値を定義します。属性の値をまだ設定していないときに属性が参照される場合に使用されます。
description
属性: 属性とその用途の簡単な概要を定義する
required
属性: 属性が必須かどうかを定義します。デフォルトは false
属性のデータ型
- Boolean、Date、DateTime、Decimal、Double、Integer、Long、String などのプリミティブデータ型。すべてのプログラミング言語で一般的に使用されるもの
- Account、MyCustomObject__c などの標準オブジェクト型とカスタム Salesforce オブジェクト型
- List、Map、Set などのコレクション型
- カスタム Apex クラス
- Aura.Component、Aura.Component[] などのフレームワーク固有の型
式
name
属性に指定した変数名を取り出す
- 式は
{!<expression>}
で表現される.
- 具体例としては、
{!v.name.foo}
.
v
って何?
- 値プロバイダと呼ばれるもの、自動変数、表示コンポーネント用の値プロバイダ.
- 他コンポーネントへ値を渡す
<c:componentName name="{!v.name.foo}"/>
<p><c:helloMessage message="{!v.messages[0]}"/></p>
<aura:iteration items="{!v.messages}" var="msg">
<p><c:helloMessage message="{!msg}"/></p>
</aura:iteration>
<aura:if isTrue="{!$Browser.isIPhone}">
<p><c:helloMessage message="{!v.messages[0]}"/></p>
<aura:set attribute="else">
<p><c:helloMessage message="{!v.messages[1]}"/></p>
</aura:set>
</aura:if>
注意事項
属性と式でPassできるシンプルコード
<aura:component >
<aura:attribute name="item" type="Camping_Item__c" required="true"/>
<p>{!v.item.Name}</p>
<p>{!v.item.Price__c }</p>
<p>{!v.item.Quantity__c }</p>
<p>{!v.item.Packed__c }</p>
<p><lightning:formattedNumber value="{!v.item.Price__c }" style="currency"/></p>
<p><lightning:formattedNumber value="{!v.item.Quantity__c }" minimumFractionDigits ="2"/></p>
<p><lightning:input type="toggle" label="packed?" name="packed" checked="{!v.item.Packed__c }"/></p>
</aura:component>