Salesforce Lightning:同一组件内的控制器功能交互

Salesforce Lightning:同一组件内的控制器功能交互,salesforce,salesforce-chatter,salesforce-communities,salesforce-lightning,Salesforce,Salesforce Chatter,Salesforce Communities,Salesforce Lightning,是否有人知道“如何从同一lightning组件中的另一个函数调用lightning controller函数?” 谢谢 阿鲁纳 ({ doInit: function(component, event, helper){ var action = component.get("c.gettemps"); action.setParams({ recordId : component.get("v.recordId") }); action.

是否有人知道“如何从同一lightning组件中的另一个函数调用lightning controller函数?” 谢谢 阿鲁纳

    ({ 
    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:函数(组件、事件、助手){
var action=component.get(“c.gettemps”);
action.setParams({recordId:component.get(“v.recordId”)});
action.setCallback(此,函数(响应){
var parsedJSON=JSON.parse(response.getReturnValue());
变量大小=组件获取(“v.limit”);
var计数器=组件获取(“v计数器”);
set(“{!v.myObject}”,parsedJSON);
var列表=[];
对于(变量i=0;i=-1)
{
列表推送(myObject[i-1]);
计数器--;
}
}
组件设置(“v.end”,计数器);
set(“{!v.counter}”,计数器);
set(“{!v.paginationList}”,列表);
}   
})
实际上,我的上一个函数有问题。当我停留在我的第一页并选择“上一页”按钮时,我的页面不应更改,但我的代码表现异常。因此,我考虑在我已经在第一页时重用我的doInit函数以停留在当前页面。请帮助 谢谢
Aruna

在助手中,可以通过“this”操作符

这个。下一个()

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

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

  • 在组件中创建方法处理程序
  • 然后,您可以通过componet.methodName函数在controller和helper中调用此方法

  • component.triggerNextFun()

    你也可以这样试试

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

    你能简要介绍一下吗?和样本代码请..嗨,我已经更新了我的代码。请检查是否应该在helper类中编写常用方法并调用该方法。。我想你可以在做动作之前检查一下,你是否在第一页;在控制器中,不能直接执行此操作。但我有一个解决办法给你:)1。在组件中创建方法处理程序。2.然后,您可以通过componet.methodName函数component.triggerNextFun()在controller和helper中调用此方法;嗨,普拉文,谢谢你的回复