【问题标题】:Set a value of the independent picklist设置独立选项列表的值
【发布时间】:2018-05-29 12:36:43
【问题描述】:

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

<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)的值

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

【问题讨论】:

    标签: salesforce salesforce-lightning


    【解决方案1】:

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

    // 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 事件填充依赖选项列表的选项。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 2012-10-26
      • 2022-11-10
      相关资源
      最近更新 更多