在闪电组件中的Facet内继承属性

时间:2018-06-13 08:53:40

标签: salesforce salesforce-lightning aura-framework

我们如何允许用户访问其体内子组件的属性,例如aura:iteration的索引变量?

<aura:iteration items="{!v.contacts}" var="item" indexVar="index">
    {!index} : {!item.FirstName}<br/>
</aura:iteration>

示例在此示例中,我需要使用contact中的属性ComponentA,但该属性仅在ListItem组件上定义,就像{ {1}}您无需定义aura:iteration即可使用它:

ComponentA

index


列表:

<aura:component>
   <aura:attribute name="contacts" type="Contact[]"/>
   <c:list contacts="{!v.contacts}">
       <!-- Generic definition of how it's showed the listItem -->
       <!-- making available the contact var like the index var on aura:iteration -->
       <p>Name: {!contact.Name} </p>
   </c:list>
</aura:component>


列表项:

<aura:component>
   <aura:attribute name="contacts" type="Contact[]"/>
   <aura:attribute name="body" type="Aura.Component[]"/>
   <aura:iteration items="{!v.contacts}" var="contact">
       <c:listItem contacts="{!contact}" body="{!v.body}"/>
   </aura:iteration>
</aura:component>

另一个例子:

想象一下customLookup允许使用该通用组件的开发人员在组件内部传递html以获得个性化列表项。

默认使用<aura:component> <aura:attribute name="contact" type="Contact"/> <aura:attribute name="body" type="Aura.Component[]"/> {!v.body} </aura:component> 想象一下,这个结果等于销售人员提供的标准。

但是现在,给了其他业务要求Lookup的listItem看起来不同,有不同的字段等。例如:

<c:customLookup apiName="Contact" selectedId="{!v.contactId}"/>

现在,customLookup将使用开发人员传递的新listItem进行渲染,而不是使用联系人电子邮件。

0 个答案:

没有答案