Я новичок в компоненте молнии. Я хочу получить два списка в контроллере js, как это возможно?


 public class ContactListController {

    
@AuraEnabled
public  static List<Contact> getContactlist(){
        List<integer> listTwo=new list<integer>();
         listTwo.add(1);
        listTwo.add(4);
         listTwo.add(9);
        List<Contact> listOne= new  List<Contact>([select id, FirstName,LastName,email,Phone from Contact]);
    
    
       return listOne;
        
    }

}

Js-контроллер

({
    doInit : function(component, event, helper) {
        var action= component.get('c.getContactlist');
       
        action.setCallback(this,               
             function(response){
            var responseValue = response.getReturnValue();
            
           component.set('v.contactlist',responseValue);
        },'SUCCESS');
        $A.enqueueAction(action,false)
        
    }
})

Теперь вопрос в том, как мы можем получить два списка в контроллере js. getContactlist возвращает только один список. Я хочу вернуть много вещей из одного и того же метода, таких как целое число, строка, логическое значение и т.д.

0
Derek F 24 Авг 2021 в 14:02

1 ответ

Этот пример не особенно реалистичен, но общее решение остается прежним: определите пользовательский тип, обертывающий все данные, которые вы хотите передать, и верните экземпляр этого класса:

public class MyDTO {
    @AuraEnabled
    public List<Contact> contacts { get; set; }
    @AuraEnabled
    public List<Integer> ints { get; set; }
    // ...
}

См. Руководство для разработчиков Aura. дополнительные сведения и сведения о передаче данных между Aura и Apex.

2
David Reed 15 Июн 2021 в 21:09
Так как я могу получить эти два списка в контроллере js?
 – 
user91246
15 Июн 2021 в 21:14
Дэвид связал ресурсы, чтобы вы могли начать работу. Если вы ожидаете, что кто-то предоставит вам полный образец кода, обратите внимание, что это не является целью этого сайта.
 – 
glls
15 Июн 2021 в 21:19
1
Ваш результат getReturnValue() имеет форму объекта JavaScript, которая соответствует форме вашего класса Apex.
 – 
David Reed
15 Июн 2021 в 21:24
Например, `` component.set('v.contactlist',responseValue.contactlsit);`` и `` component.set('v.intlist',responseValue.ints);`` ?
 – 
user91246
15 Июн 2021 в 21:26
1
@fawad, если вы новичок в lwc и/или ауре, я настоятельно рекомендую вам следовать соответствующим модулям.
 – 
glls
15 Июн 2021 в 21:44