この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

コンポーネントの属性

コンポーネントの属性は、Apex のクラスのメンバー変数に似ています。これらは型付けされた項目で、コンポーネントの特定のインスタンスに設定されており、式の構文を使用したコンポーネントのマークアップ内から参照できます。属性を使用すると、コンポーネントをより動的に扱うことができます。

属性をコンポーネントに追加するには、コンポーネントのマークアップで <aura:attribute> タグを使用します。サンプルコンポーネント helloAttributes.cmp を見てみましょう。

1swfobject.registerObject("clippy.codeblock-0", "9");<aura:component>
2    <aura:attribute name="whom" type="String" default="world"/>
3    Hello {!v.whom}!
4</aura:component>
5
6

すべての属性には名前と型があります。属性には、required="true" を指定して必須としてマークできます。デフォルト値を指定することもできます。

このサンプルには、whom という名前の文字列型の属性があります。値が指定されない場合は、デフォルトの「world」になります。

厳格な要件ではありませんが、<aura:attribute> タグは通常、コンポーネントのマークアップの先頭に置きます。こうすることで、コンポーネントの形状を一目で簡単に参照できるためです。

属性名の先頭文字は、英字またはアンダースコアにする必要があります。2 文字目以降には数字やハイフンも使用できます。

式にはハイフンを含む属性は使用できません。たとえば、cmp.get("v.name-withHyphen") はサポートされますが、<ui:button label="{!v.name-withHyphen}"/> はサポートされません。

メモ

ブラウザに helloAttributes.cmp を読み込むと、前述の helloWorld.cmp コンポーネントとまったく同じに見えます。

ここで、?whom=you を URL に追加して、ページを再読み込みします。クエリ文字列の値によって、whom 属性の値が設定されます。コンポーネントを要求するときにクエリ文字列で属性値を指定すると、そのコンポーネントの属性を設定することができます。

これは文字列型の属性でのみ機能します。

警告

helloAttributes.cmp のマークアップに、Hello {!v.whom}! という行があります。これがコンポーネントの動的出力を担います。

{!<expression>} はフレームワークの式の構文です。この場合、評価する式は v.whom です。定義した属性の名前が whom で、v. が、ビューを表すコンポーネントの属性セットに値を提供します。

式では、大文字と小文字が区別されます。たとえば、myNamespace__Amount__c というカスタム項目は、{!v.myObject.myNamespace__Amount__c} として参照する必要があります。

メモ

属性の検証

helloAttributes.cmp に有効な属性のセットを定義したので、フレームワークでは、有効な属性のみがそのコンポーネントに渡されることが自動的に検証されます。

クエリ文字列 ?fakeAttribute=fakeValue を追加して helloAttributes.cmp ���要求を試してみてください。helloAttributes.cmpfakeAttribute 属性がないというエラーが表示されます。