【问题标题】:Salesforce Lightning: Controller functions interaction within the same componentSalesforce Lightning:同一组件内的控制器功能交互
【发布时间】:2017-09-18 00:33:51
【问题描述】:

有谁知道“如何从同一个闪电组件中的另一个函数调用闪电控制器函数?” 谢谢 阿鲁娜

    ({ 
    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 函数以留在当前页中。请帮忙 谢谢 阿鲁娜

【问题讨论】:

  • 你能简单介绍一下吗?请提供示例代码..
  • 嗨,我已经更新了我的代码。请检查
  • 您应该在帮助类中编写常用方法并调用该方法。我认为您可以在执行操作之前检查一下,您是否在第一页。

标签: salesforce salesforce-chatter salesforce-communities salesforce-lightning


【解决方案1】:

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

this.next();

在控制器中你不能直接这样做。

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

  1. 在组件中创建方法处理程序。

  1. 然后就可以在controller和helper中通过componet.methodName函数调用这个方法了

component.triggerNextFun();

【讨论】:

  • 在助手中可以通过 "this" 操作符 this.next();在控制器中,您不能直接执行此操作。但我有一个解决方案给你:) 1. 在组件中创建方法处理程序。 2. 然后你可以在控制器和助手中通过 componet.methodName 函数 component.triggerNextFun();
  • 您好,Praveen,感谢您的回复
【解决方案2】:

你也可以这样试试

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2015-12-05
    • 2018-09-06
    • 2020-02-27
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多