访问Lightning组件

时间:2017-02-09 23:04:17

标签: javascript controller tabs salesforce-lightning

我的闪电组件设置如下:

<aura:component >
<aura:attribute name="opts" type="List" default="['Tyler Dahle','Molly Demouser','Penny Demouser', 'Ted Demouser']"/>
<lightning:tabset aura:id="tabBar" variant="scoped" selectedTabId="none">
    <lightning:tab aura:id="ownerTab">
        <aura:set attribute="label">
            <lightning:icon iconName="utility:groups"/>
        </aura:set>
        <lightning:select name="users" label="Select Users/Groups/Resources:">
            <aura:iteration items="{!v.opts}" var="option">
                <option>{!option}</option>
            </aura:iteration>
        </lightning:select>
        <lightning:input type="checkbox" label="Enable" name="Enable User Filter" checked="true"/>
        <lightning:button class="closeUser" variant="base" iconName="utility:close" onclick="{!c.closeTabContent}"/>
    </lightning:tab>
  </lightning:tabset>
</aura:component>

然后我在visualforce页面中初始化,如:

$Lightning.use("c:filterBar", function(){
                    $Lightning.createComponent("c:userTab", {label: ""}, "filterTabStrip");    
                });

然后显示,我可以点击我的标签和所有内容。但是,我的选项卡内容中显示了带有“x”的按钮。当用户点击此按钮时,我希望标签内容再次关闭,因为现在,一旦打开标签页,标签页始终处于打开状态。

我尝试在控制器中使用component.find('ownerTab'),但返回undefined。 component.find('tabBar')返回一个标签栏,然后我可以在我的标签栏上执行.get('selectedTabId')并返回正确的Id,但我无法弄清楚如何找到标签,然后在点击'x'时将其类设置为'slds-tabs - scoped__content slds-hide'(我刚刚列出的类是html页面中给出内容的类,其中'hide'更改为'show'时显示内容。)

所以我很想知道如何从控制器(不是tabset,但是选项卡)访问选项卡,以及如何关闭内容。一旦我弄清楚如何访问选项卡,我会尝试更改它的类,但我有一种感觉不会起作用.....

谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

导航到其他组件后,您没有直接链接进行通信,

  1. 为了在光环:组件之间进行通信,我们使用光环:事件
  2. 为了在aura:component和vf页面之间进行通信,我们需要使用postmessage javascript funtion和事件监听器来处理这些消息。