0

Est-ce que quelqu'un sait "comment appeler une fonction de contrôleur de foudre à partir d'une autre fonction dans le même composant de foudre?" Merci ArunaSalesforce Lightning: Interaction entre les fonctions du contrôleur et le même composant

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

    var action = component.get("c.gettemps"); 
    action.setParams({ recordId : component.get("v.recordId") }); 
      action.setCallback(this, function(response){ 
     var parsedJSON= JSON.parse(response.getReturnValue()); 
     var size=component.get("v.limit"); 
     var counter = component.get("v.counter"); 
     component.set("{!v.myObject}",parsedJSON); 



    var list=[]; 
     for(var i=0; i<size;i++) 
     { 
      list.push(parsedJSON[i]); 
      counter++; 

     } 
       component.set("v.end",counter); 
       component.set("{!v.counter}",counter); 
       component.set("{!v.paginationList}",list); 

     }); 
$A.enqueueAction(action); 
}, 

next:function(component,event,helper) 
{ 
    var myObject = component.get("v.myObject"); 
    var size=component.get("v.limit"); 
    var end = component.get("v.end"); 
    var counter = component.get("v.counter"); 
    var list=[]; 

    for(var i=end; i<end+size; i++) 
    { 
     if(i<myObject.length) 
     { 
      if(i>-1) 
      { 


     list.push(myObject[i]); 
     counter++; 
      } 
     } 

    } 
    component.set("v.end",counter); 
    component.set("{!v.counter}",counter); 
    component.set("{!v.paginationList}",list); 

}, 

previous:function(component,event,helper) 
{ 

    var myObject = component.get("v.myObject"); 
    var size=component.get("v.limit"); 
    var end = component.get("v.end"); 
    var counter = component.get("v.counter"); 
      var list=[]; 
    for(var i=end-1; i>end-size-1; i--) 
    { 
     if(i>=-1) 
     { 

     list.push(myObject[i-1]); 
     counter--; 
     } 


    } 
    component.set("v.end",counter); 
    component.set("{!v.counter}",counter); 
    component.set("{!v.paginationList}",list); 
} 
}) 

En fait, j'ai problème avec ma fonction précédente. Lorsque je reste sur ma première page et sélectionne le bouton précédent, ma page ne doit pas être modifiée mais mon code se comporte anormalement. J'ai donc pensé réutiliser ma fonction doInit pour rester dans la page actuelle quand je suis déjà dans la première page. S'il vous plaît aider Merci Aruna

+0

Pouvez-vous informer? et Exemple de code s'il vous plaît .. – chinmayahd

+0

Bonjour, J'ai mis à jour mon code. S'il vous plaît vérifier – Alina

+0

Vous devriez écrire vos méthodes communes dans la classe d'aide et appelez cette méthode .. Je pense que vous pouvez vérifier avant de faire des actions, vous êtes en première page ou non. – chinmayahd

Répondre

0

Dans l'assistant, il est possible par "ce" opérateur

this.next();

Dans le contrôleur, vous ne pouvez pas le faire directement.

Mais j'ai une solution pour vous :)

  1. Créer gestionnaire de méthode dans le composant.

  1. Ensuite, vous pouvez appeler cette méthode dans le contrôleur et aide par la fonction componet.methodName

component.triggerNextFun();

+0

Dans l'assistant, il est possible par "this" opérateur this.next(); Dans le contrôleur, vous ne pouvez pas le faire directement. Mais j'ai une solution pour vous :) 1. Créez un gestionnaire de méthodes dans le composant. 2. Ensuite, vous pouvez appeler cette méthode dans le contrôleur et aide par la fonction componet.methodName component.triggerNextFun(); –

+0

Salut Praveen, Merci pour votre réponse – Alina

0

Vous pouvez également essayer cette façon

Controller JS:

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

     action.setParams({ 
      "CaseId" : component.get("v.recordId") 
     }); 
     console.log("caseId :" + component.get("v.recordId")); 

     action.setCallback(this, function(response) { 
      var state = response.getState(); 
      if(component.isValid() && state == "SUCCESS"){ 
       component.set("v.BeforeAWB", response.getReturnValue()); 
      } 
     }); 
     $A.enqueueAction(action); 
    }, 

    closeModal : function(component, event, helper) { 
     $A.get('e.force:refreshView').fire(); 
     var reInit = component.get("c.doInit"); 
// use this and extend the values you need to get from "doInit" method 
     $A.enqueueAction(reInit); 
    } 
})