I am trying to pass input parameters from one function to another function inside a return statement. However in below example input1 and input2 are undefined. The values inside the return statement are undefined while inside the factory function they are not. How do I pass the values into the returned func()?
function func(input1,input2) {
console.log(input1,input2)
// "undefined, undefined"
}
angular.module("factory").factory("test", (input1, input2) => {
console.log(input1, input2)
//"input1", "input2"
return {
func: (input1, input2) => {
func(input1, input2);
}
};
});
Advertisement
Answer
This line:
func: (input1, input2) => {
shadows the parameter of the outer function (by declaring it’s own parameters with the same names). So just remove those. E.g.
angular.module("factory").factory("test", (input1, input2) => {
return {
func: () => {
func(input1, input2);
}
};
});