0

是否有人知道“如何从同一闪电组件内的其他功能调用闪电控制器功能? 感谢 阿鲁娜Salesforce Lightning:同一组件内的控制器功能交互

({ 
    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); 
} 
}) 

其实我有我以前的功能问题。当我留在我的第一页并选择前一个按钮时,我的页面不应该改变,但我的代码表现异常。所以我想当我已经在第一页时,重用我的doInit函数留在当前页面中。请帮助 感谢 阿鲁娜

+0

能否介绍一下?和示例代码请 – chinmayahd

+0

嗨,我已经更新了我的代码。请检查 – Alina

+0

您应该在助手类中编写常用方法并调用该方法..我认为您可以在执行操作前检查,您是否在首页。 – chinmayahd

回答

0

在助手可以通过 “本” 操作

this.next();

在控制器中,您不能直接执行此操作。

但我对你有一个解决方案:)

  1. 创建组件的方法处理。

  • 然后就可以通过componet.methodName函数调用在控制器和辅助该方法
  • component.triggerNextFun();

    +0

    在助手中,可以通过“this”运算符 this.next(); 在控制器中,您不能直接执行此操作。 但我有一个解决方案:) 1.在组件中创建方法处理程序。 <光环:方法名= “triggerNextFun” 行动= “{c.next!}”> 2.然后可以通过componet.methodName函数调用在控制器和辅助该方法 component.triggerNextFun(); –

    +0

    嗨Praveen,谢谢你的回复 – Alina

    0

    您也可以尝试这种方式

    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); 
        } 
    })