Javascript 将参数传递给XMLHttpRequest eventListener函数
我有一个带有文件上传屏幕的angularjs应用程序 为了监控文件上传的进度,我注册了“进度”事件处理程序,如下所示:Javascript 将参数传递给XMLHttpRequest eventListener函数,javascript,angularjs,Javascript,Angularjs,我有一个带有文件上传屏幕的angularjs应用程序 为了监控文件上传的进度,我注册了“进度”事件处理程序,如下所示: xhr.upload.addEventListener("progress", uploadProgress, false); 我的职能: function uploadProgress(evt) { $scope.$apply(function(){ if (evt.lengthComputable) {
xhr.upload.addEventListener("progress", uploadProgress, false);
我的职能:
function uploadProgress(evt) {
$scope.$apply(function(){
if (evt.lengthComputable) {
$scope.data.progress[0] = evt.loaded;
} else {
$scope.data.progress = 0;
}
})
}
我需要再向uploadProgress方法传递一个参数。
我怎样才能做到这一点
本质上是一个额外的参数,表示“i”,如下所示:
xhr.upload.addEventListener("progress", uploadProgress(i), false);
这不是特定角度的 您可以使用标准JS的:
function uploadProgress(i, evt) {
...
xhr.upload.addEventListener("progress", uploadProgress.bind(null, i), false);
function uploadProgress(i, evt) {
...
xhr.upload.addEventListener("progress", angular.bind(null, uploadProgress, i), false);
您可以使用Angular的:
function uploadProgress(i, evt) {
...
xhr.upload.addEventListener("progress", uploadProgress.bind(null, i), false);
function uploadProgress(i, evt) {
...
xhr.upload.addEventListener("progress", angular.bind(null, uploadProgress, i), false);
最后,您还可以使用普通的旧(这是更多的代码,但其好处是允许您指定任意参数顺序):
你的意思是像调用
uploadProgress(i,evt)
而不是uploadProgress(evt)
?