Установите значение независимого списка выбора - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь сделать список выбора зависимым от другого списка выбора контроллера: Подтип Зависимый список выбора Мне удалось это сделать, я поместил его в компонент молнии

<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 дочернего компонента, чтобы инициализировать значение атрибута дочернего компонента контроллера SubTypeV (Тип), чтобы инициализировать значение зависимого списка выбора (SubType)

Для списка выбора Контроллера (Тип) инициализация работает, но для зависимого списка выбора (Подтип) это не Спасибо заранее

1 Ответ

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

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

// 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>

Здесь я использовал тег lightning , поскольку Salesforce прекращает поддержку тегов ui .Логика: onchange Событие первого списка выбора заполняет параметры зависимого списка выбора.

...