Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 window.onbeforeunload在进入页面时激发_Javascript_Angularjs - Fatal编程技术网

Javascript window.onbeforeunload在进入页面时激发

Javascript window.onbeforeunload在进入页面时激发,javascript,angularjs,Javascript,Angularjs,这段代码没有达到我期望的效果。加载页面时,它只会触发saveStats()。当我退出页面时,它不会触发saveStats() 我在我的角度控制器里写的。 我对结果很困惑 $scope.saveStats = function () { $http({ method: "post", url: "save.php", data: $scope.info }).success(function () { console.log($scope.info);

这段代码没有达到我期望的效果。加载页面时,它只会触发
saveStats()
。当我退出页面时,它不会触发
saveStats()

我在我的角度控制器里写的。 我对结果很困惑

$scope.saveStats = function () {
  $http({
    method: "post",
    url: "save.php",
    data: $scope.info
  }).success(function () {
    console.log($scope.info);
  })
};

window.onbeforeunload = $scope.saveStats();
通过将
()
添加到
saveStats
的末尾,可以立即执行该函数。您要做的是将对
saveStats
的引用传递给您的
onbeforeunload
,如下所示:

window.onbeforeunload = $scope.saveStats();
                                        ^^^
试试这个:

window.onbeforeunload = $scope.saveStats;

您只是试图通过引用传递函数,而不是执行它,因此请删除触发函数的双括号。

什么是
x=foo()做什么?正确的!所以这正是
window.onbeforeunload=$scope.saveStats()的内容确实存在。的可能重复取决于
saveStats
是否需要
成为
$scope
;如果是这样的话,你需要一个
bind
@T.J.Crowder好的点来突出显示,但是提供的代码没有使用
这个
该死的东西,那是一个蹩脚的错误。感谢您抽出时间,并以如此出色的方式将其清理干净在我被允许接受这个答案之前,我必须等待一段时间
 window.onbeforeunload = $scope.saveStats;