0

我正在尝试使一个选项列表依赖于另一个控制器选项列表:子类型依赖选项列表我成功地做到了我把它放在一个闪电组件中

<ui:inputSelect aura:id="conType" label="Type" class="slds-select" change="{!c.onControllerFieldChange}" value="{!v.TypeV}">
<ui:inputSelect aura:id="conSubtype" label="Sub Type" value="{!v.SubTypeV}" disabled="{!v.isDependentDisable}" class="slds-select"  /> 

我把这个组件从另一个闪电组件

DependentSubtype是子组件TypeV子组件属性初始化控制器picklist(Type)的值SubTypeV子组件属性初始化依赖picklist(SubType)的值

对于控制器选择列表(类型),初始化工作但对于依赖的选择列表(子类型)它不提前感谢

4

1 回答 1

0

看来您的方法是对的,但是仅从那两行代码很难指出问题所在。这是依赖选项列表的一种方法,

// controller.js
({
  doInit : function(component, event, helper) {
    helper.loadOption1(component, event);
  },
  
  changeSecondPicklist : function(component, event, helper) {
    helper.populateOption2(component, event);
  }
})

// helper.js
({
  loadOption1 : function(component, event) {
    var option = [];
    option.push('Type1.1');
    option.push('Type1.2');
    option.push('Type1.3');
    component.set('v.option1', option);
  },
  
  populateOption2 : function(component, event) {
    var value = event.getParam('value');
    var option = [];
    if (value == 'Type1.1') {
      option.push('SubType1.1');
      option.push('SubType1.2');
      option.push('SubType1.3');
    }
    else if (value == 'Type1.2') {
      option.push('SubType2.1');
      option.push('SubType2.2');
      option.push('SubType2.3');
    }
    else {
      option.push('SubType3.1');
      option.push('SubType3.2');
      option.push('SubType3.3');
    }
    component.set('v.option2', option);
  }
})
<!-- lightning component -->
<aura:component>
  <aura:attribute name="option1" type="String[]" />
  <aura:attribute name="option2" type="String[]" />
  <aura:handler name="init" value="{!this}" action="{!c.doInit}" />

  <lightning:select name="select1" label="Type" required="true" onchange="{!c.changeSecondPicklist}">
    <option value="">choose one...</option>
    <aura:iteration items="{!v.option1}" var="item">
      <option value="{!item}">{!item}</option>
    </aura:iteration>
  </lightning:select>

  <lightning:select name="select2" label="SubType" required="true">
    <option value="">choose one...</option>
    <aura:iteration items="{!v.option2}" var="item">
      <option value="{!item}">{!item}</option>
    </aura:iteration>
  </lightning:select>
</aura:component>

在这里,我使用了闪电标签,因为 Salesforce 将停止支持ui标签。逻辑是第一个选项列表的onchange事件填充依赖选项列表的选项。

于 2018-07-30T14:48:12.800 回答