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