Вызовите компонент молнии внутри того же компонента молнии - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь создать компонент молнии, который рекурсивно вызывает себя для создания иерархии деревьев с атрибутами заполненной карты, которая выглядит как Map<Integer,Map<Id,List<Object>>> является первым ключом уровень дерева и вторым ключом парентидом списка найденных объектов .

Мой вопрос: Можно ли создать компонент, который работает как в этом примере?

CustomLightningComponent

<aura:component>
    <aura:attribute name="mapObject" type="map"/>
    <aura:attribute name="level" type="integer"/>
    <aura:attribute name="parentId" type="string"/>
    <aura:attribute name="listObject" type="list"/>

    <aura:iteration items="listObject" var="obj">
        <p>{!obj.Name}</p>
        <c:CustomLightningComponent mapObject="{!mapObject}" level="{!v.level}" parentId="{!obj.Id}"/>
    </aura:iteration>
</aura:component>

CustomLightningComponentController

({
    doInit: function(component, event, helper) {
         var map = component.get("v.mapObject");
         var level = component.get("v.level");
         var parentId = component.get("v.parentId");

         var listObjects = map[level][parentId];
         //To iterate over next level
         component.set("v.level", level++);
         //Set list
         component.set("v.listObject", listObjects);
    }
})

Код довольно простой, чтобы привести пример того, что я хочу реализовать.

Возможно ли это вообще? Вызовите тот же компонент молнии рекурсивно?

1 Ответ

0 голосов
/ 29 июля 2018

Да, можно перебирать дочерний компонент с помощью тега aura: iteration. Тем не менее, карта, которую вы создали, выглядит очень сложной, и молния не обеспечивает очень легкий доступ к карте и ее содержимому. Вместо такой сложной карты вы можете создать объект JSON в javascript (помощник), который определенно уменьшит сложность.

...