无法将对象数组放入从Aura组件<ui:InputNumber>调用的控制器函数中

时间:2019-09-22 20:22:04

标签: arrays object controller salesforce-lightning

谢谢大家,为我提供帮助! 我只是被卡住了,不知道这是Salesforce还是

的问题

我做错了!!

这是我在卡上启用内联编辑的情况,当用户更改“数量”的值时,该组件调用JS控制器功能

它没有获取我已作为参数传递的列表,其内容未附加在下面,

有趣的事实

  1. 但是我从其他地方调用了相同的函数,例如make 复选框,并在调用相同的更改上,我得到了数组列表 作为参数传递

  2. 从列表中调用列表时我没有得到列表 除此之外,我使用component.get()

  3. 获得了所有值。

光环组件属性

<aura:attribute name="item" type="Object" required="true"></aura:attribute>
<aura:attribute name="title" type="String" required="true"></aura:attribute>
<aura:attribute name="bid" type="Object[]" required="true"></aura:attribute>
<aura:attribute name="box1" type="Boolean" default="false" />
<aura:attribute name="categoriesSum" type="Object" required="true"></aura:attribute>
<aura:attribute name="quantityEditMode" type="boolean" default="false"></aura:attribute>

使用InputNumber的组件代码调用不起作用

   <ui:inputNumber class="slds-input " labelClass="slds-form- 
   element__label slds-form-element__label_edit slds-no-flex" 
   change ="{!c.onQuantityChange}" 
   required="true" value=" 
   {!v.item.Quantity__c}" />

使用CheckBox正常工作的组件代码调用

<ui:inputCheckbox aura:id="checkbox1" value="v2" change="{!c.onQuantityChange}"/>

JS控制器

  onQuantityChange : function(component, event, helper){
    console.log('----Item----'+component.get('v.item')); 
    console.log('----title---'+ component.get('v.title'));
    console.log('----Bid---'+ component.get('v.bid'));
    console.log('----Box---'+ component.get('v.box1'));
    console.log('---categoriesSum--component.get('v.categoriesSum'));
    console.log('----quantityEditMode---'+ component.get('v.quantityEditMode'));

   }

带有InputNumber的输出 enter image description here

带有复选框的输出 enter image description here

如果您需要更多说明,请让我知道我被困在这里将近7个小时,是的,我也尝试过辅助程序,这是相同的情况

1 个答案:

答案 0 :(得分:1)

您不能使用

直接更改对象上字段的值。
value=" 
   {!v.item.Quantity__c}"

请尝试将其保存在v2之类的属性中(您已经在复选框中完成了此操作)

从ui:inputNumber进行的更改将其添加到控制器。

基本上是这样:

<aura:attribute name="v2" type="Integer"/>
<ui:inputNumber class="slds-input " labelClass="slds-form- 
   element__label slds-form-element__label_edit slds-no-flex" 
   change ="{!c.onQuantityChange}" 
   required="true" value=" 
   {!v.v2}" />

希望这会有所帮助。