Наследовать атрибуты внутри фасета в компоненте молнии

Как мы можем разрешить пользователю доступ к атрибутам дочернего компонента внутри своего тела, например, к индексу var aura:iteration?

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

Пример В этом примере мне нужно использовать атрибут contact в ComponentA но атрибут определяется только на ListItem компонент, так же, как aura:iteration что вам не нужно определять index использовать это:

Componenta

<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>


Элемент списка:

<aura:component>
   <aura:attribute name="contact" type="Contact"/>
   <aura:attribute name="body" type="Aura.Component[]"/>
   {!v.body}
</aura:component>

Другой пример:

Представьте себе customLookup, который позволяет разработчику, использующему этот универсальный компонент, передавать html внутри компонента, чтобы иметь персонализированный элемент списка.

Использование по умолчанию <c:customLookup apiName="Contact" selectedId="{!v.contactId}"/>Представьте себе, что результат равняется тому, что предлагает Salesforce как стандарт.

Но теперь было выдвинуто другое бизнес-требование, чтобы listItem в поиске выглядел по-разному, с разными полями и т. Д. Пример:

<c:customLookup apiName="Contact" aditionalFields="Email">
    <icon name="abc"/> this is my new list item {!contact.Email}
</c:customLookup >

Теперь customLookup будет отображаться с новым listItem, переданным разработчиком, с контактным Email.

0 ответов

Другие вопросы по тегам