Salesforce 在同一个lightning组件内调用lightning组件

Salesforce 在同一个lightning组件内调用lightning组件,salesforce,salesforce-lightning,Salesforce,Salesforce Lightning,我正在尝试实现一个lightning组件,它递归地调用自己来生成一个树层次结构,其中包含一个填充映射的属性,如下所示 Map是树级别的第一个键,第二个键是检索到的对象列表的parentid 我的问题是:是否有可能创建一个类似于此示例的组件 自定义照明组件 <aura:component> <aura:attribute name="mapObject" type="map"/> <aura:attribute name="level" type="i

我正在尝试实现一个lightning组件,它递归地调用自己来生成一个树层次结构,其中包含一个填充映射的属性,如下所示 Map是树级别的第一个键,第二个键是检索到的对象列表的parentid

我的问题是:是否有可能创建一个类似于此示例的组件

自定义照明组件

<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>
这段代码非常基本,仅举一个我想要实现的示例


这可能吗?递归调用相同的lightning组件?

是的,可以使用aura:iteration标记在子组件上迭代。但是,您创建的地图看起来非常复杂,lightning无法提供对地图及其内容的非常方便的访问。您可以在javascripthelper中创建JSON对象来代替这种复杂的映射,这无疑会降低复杂性({ 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); } })