3

I'm trying to display a list in a lightning component : the component (Carousel.cmp)

<aura:component controller="CarouselController"  implements="forceCommunity:availableForAllPageTypes,force:appHostable,flexipage:availableForAllPageTypes">
<aura:attribute name="actualites" type="Actualite__c[]"/>
<aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
<aura:iteration var="a" items="{!v.actualites}">
    {!a.Name} : {!a.Description__c}
</aura:iteration></aura:component>

the server side controller (CarouselController.apxc)

public with sharing class CarouselController {

@AuraEnabled
public static List<Actualite__c> getActualites(){
    List<Actualite__c> actualites = [select Id, Name, Description__c from Actualite__c];
    return actualites;
}

@AuraEnabled
public static Actualite__c getActualite(Id id){
    Actualite__c actualite = [select Id, Name, Description__c from Actualite__c WHERE Id = :id];
    return actualite;
} }

the client side controller (CarouselController.js)

({
doInit : function(component, event, helper) {
    var action = component.get("c.getActualites");

    action.setCallback(this, function(reponse){
        if(reponse.getState === "SUCCESS"){
            component.set("v.actualites", reponse.getReturnValue());
        }
    });

    $A.enqueueAction(action);
} })

I just try to display a dynamic list of Actualite__c but when I try to visualize it with my lightning application :

<aura:application >
<c:Carousel /></aura:application>

I just see a blank page...

Am I doing something wrong ? Thank you

5
  • are you getting any error or something else?
    – Ratan Paul
    Mar 9, 2016 at 10:30
  • no, I try to add a button in my component like that : <ui:button label="yo !" press="{!c.doInit}"/> ans i see the button in my page but nothing happen when i click it... (I comment the aura:handler)
    – dou
    Mar 9, 2016 at 10:39
  • Have you tried what Keith C suggested.. you need to change a.getReturnValue() to reponse.getReturnValue().. If still facing issue then add a console.log console.log(reponse.getReturnValue()); and check in browser console it is returning any value or not..
    – Ratan Paul
    Mar 9, 2016 at 10:47
  • 1
    @Ratan use lightning inspector .Using inspector should help Mar 9, 2016 at 10:56
  • @MohithShrivastava Yes lightning inspector is best.. Dou you can use this extension to debug the result.
    – Ratan Paul
    Mar 9, 2016 at 11:03

2 Answers 2

2

Also check your aura:iteration.

In Your aura:repeat items you will need to use proper syntax {!v.actualites}

To debug download chrome extension for lightning inspector.

https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/inspector_intro.htm

Also response.getState should be method not property .Correct syntax is response.getState()

7
  • I tried to use lightning inspector, when I see the action tab it say that the state of Action$getActualite is success... So that is what I want but I doesn't work...
    – dou
    Mar 9, 2016 at 11:03
  • Check all your variables as well that they are populated.Is your query returning rows? Mar 9, 2016 at 11:10
  • How can I see if my query return rows ?
    – dou
    Mar 9, 2016 at 11:16
  • If I put a debugger; here : ({ doInit : function(component, event, helper) { var action = component.get("c.getActualites"); debugger; action.setCallback(this, function(reponse){ if(reponse.getState === "SUCCESS"){ component.set("v.actualites", reponse.getReturnValue()); } }); console.log("reponse.getReturnValue()"); $A.enqueueAction(action); } }) I see when debugging that it's not passing in the action.setCallback(this, function(reponse){
    – dou
    Mar 9, 2016 at 13:05
  • 2
    The method is response.getState() ..getState is method not oroperty Mar 9, 2016 at 13:09
3

In an example I have, the argument to the callback function is where the return value came from:

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

In your code you have a.getReturnValue() instead of reponse.getReturnValue().

You should check your browser's JavaScript console for errors; if the above is the cause you should see an error there such as "a is not defined".

Also this:

<aura:iteration var="a" items="v.actualites">

should be this:

<aura:iteration var="a" items="{!v.actualites}">
5
  • Thank you I correct it. But my page is still blank ...
    – dou
    Mar 9, 2016 at 10:42
  • Then (assuming there are no other JavaScript errors in the console) I suggest you add some console.log calls to your JavaScript and some System.debug calls to your Apex to track down where the overall process is breaking.
    – Keith C
    Mar 9, 2016 at 10:43
  • @dou See the "Also this" addition.
    – Keith C
    Mar 9, 2016 at 10:50
  • I correct it thank you, but the problem remain the same... I don't see any error in the app.js in my browser, I try to use the deboger but I'm not feeling comfortable with it...
    – dou
    Mar 9, 2016 at 10:54
  • @dou I'm afraid you won't get very far unless you learn to use the debugging aids.
    – Keith C
    Mar 9, 2016 at 11:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .