Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数引用作为回调传递给我的服务_Javascript_Angularjs - Fatal编程技术网

Javascript 将函数引用作为回调传递给我的服务

Javascript 将函数引用作为回调传递给我的服务,javascript,angularjs,Javascript,Angularjs,我试图重构我的代码以避免干涸,发现我在$resource的两个回调函数中做了同样的事情。但我还没有设法传递函数引用,而不是函数声明本身 我正在尝试这个: emailService.getEmails(people, function(data) { data.foo(); }); 但我想要这样的东西: emailService.getEmails(people, $scope.callback); $scope.callback = function(data) { data

我试图重构我的代码以避免干涸,发现我在$resource的两个回调函数中做了同样的事情。但我还没有设法传递函数引用,而不是函数声明本身

我正在尝试这个:

emailService.getEmails(people, function(data) {
    data.foo();
});
但我想要这样的东西:

emailService.getEmails(people, $scope.callback);

$scope.callback = function(data) {
    data.foo();
};

我似乎没能让它发挥作用。我可以这样做吗?

这是因为在运行
emailService.getEmails
函数时,
$scope.callback
尚未定义。您可以将其更改为:

emailService.getEmails(people, callback);

function callback(data) {
    data.foo();
};

您需要在
emailService.getEmails
行之前声明
$scope.callback
$scope
是否在任何地方声明?作为旁注,您不应该避免干燥-事实上,您应该尽可能干燥;湿的很危险。)这样声明的函数将被“提升”到其作用域的顶部。谢谢,我不知道关于“提升”=)