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, чтобы остаться на текущей странице, когда я уже на первой странице. Пожалуйста, помогите Спасибо Аруна
2 ответа
Вы также можете попробовать этот способ
JS Controller:
({
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);
}
})
В хелпере это возможно оператором "this"
this.next();
В контроллере вы не можете сделать это напрямую.
Но у меня есть одно решение для вас:)
- Создать обработчик метода в компоненте.
- Затем вы можете вызвать этот метод в контроллере и помощнике с помощью функции componentet.methodName
component.triggerNextFun();