Как добавить значение для моего ввода с помощью aura: iteration во время события onChange текстового поля - PullRequest
0 голосов
/ 10 февраля 2020

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

<aura:component implements="flexipage:availableForAllPageTypes,force:appHostable" access="global" controller="VisionController">
<!--Remember to define your binding attribute-->
<aura:attribute name="val" type="String"/>
<lightning:card title="Partner Information">
    <div class="slds-p-around_medium">
        <p>
            <!--Set you attribute as the value of the lightning:input component-->
            <lightning:input aura:name="val" 
                             label ="Enter KPI" 
                             value="{!v.val}" 
                             type="text" 
                             onchange="{!c.onChange}"/>
        </p>
    </div>
</lightning:card>

My * Контроллер 1024 * выглядит так:

({
onChange : function(component, event, helper) {

var action = component.get("c.getCallKPI")
    action.setParams({
        "value":val,

    })
    $A.enqueueAction(action)

}

})

Я попытался выполнить итерацию в контроллере, используя следующий код

 var prediction=component.find("pred")
    var predictionProb=component.find("predProb")
 <aura:iteration items="{c.getCallKPI}" var="predUrl" >
        prediction.value="{!predUrl.label}"
        predictionProb.value="{!prediction.probability}"
    </aura:iteration>    

, где предсказание и предсказание - это идентификатор два молниеносных ввода даны в моем компоненте. Но я получаю синтаксическую ошибку в </aura:iteration>

Если я делаю это в компоненте, используя следующий код

 <aura:iteration items="{c.getCallKPI}" var="predUrl" >

            <lightning:input id="pred" readonly="true"  value="{!predUrl.label}"/>
            <lightning:input id="predProb" readonly="true" value="{!predUrl.probability}" />

    </aura:iteration>

Тогда он не дает никаких ошибка, но не заполнение входов. Можете ли вы помочь, как мне решить эту проблему?

мой getCallKPI указан ниже

@auraEnabled
public static List<KPI.Prediction> getCallKPI(string value) {

    return KPI.Prediction;

}

1 Ответ

1 голос
/ 10 февраля 2020

Вы должны использовать aura: итерацию внутри разметки компонента.

  1. В вашем компоненте создайте новый атрибут типа "Список".

    <aura:attribute name="predictions" type="List"/>
    
  2. В JS контроллере указывается обратный вызов для действия, в котором для нового атрибута устанавливается response.getReturnValue () .

    action.setCallback(this, function(response) {
       component.set("v.predictions", response.getReturnValue());
    }
    

    Вызов действия на стороне сервера

  3. Внутри компонента, итерация по возвращенным записям:

    <aura:iteration items="{!v.predictions}" var="item">
     //your logic
    </aura:iteration>
    

    аура: итерация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...