如何将 eventHandlers 和 uploadEvntHandlers 与 angularjs 1 http 请求一起使用?

Posted

技术标签:

【中文标题】如何将 eventHandlers 和 uploadEvntHandlers 与 angularjs 1 http 请求一起使用?【英文标题】:How to use eventHandlers and uploadEvntHandlers with angularjs 1 http requests? 【发布时间】:2016-10-28 11:37:43 【问题描述】:

我试过这段代码没有成功

$http(
    method:"GET",
    url:"data/mycooljsonfile.json",
    eventHandlers:
        onprogress:function(event)
        console.log("progress");
        console.log(event);
    ,onreadystatechange:function(event)
        console.log("change");
        console.log(event);
    
    ,
    uploadEventHandlers:
         onprogress:function(object)
              console.log(object);
         
    
)
.success(function(json) // succès
     $scope.lemmes=json;
      //console.log($http);
).error(function(error) // erreur
    console.log(error);
);

我在这里检查过:

https://docs.angularjs.org/api/ng/service/$http

还有:

https://www.w3.org/TR/XMLHttpRequest/#events

只是我想改进我的代码,在将大 json 文件下载到应用程序时使用进度条。

顺便说一句,我找不到记录整个 $http 对象的功能和支持的事件的方法,因为它返回了一个包含少量信息的 promise 对象。

【问题讨论】:

***.com/a/3694435/949476 我知道可以用纯 javascript 来做,我的问题是关于使用 Angular JS 版本 1,它在标题中。 现在在这个问题上摸索了几天。没有触发事件:( 德拉特。找到了解决方案。更新到 angularjs 1.5.5 :D 太好了,如果可以的话,希望我能参与到文档中。 @s-s-r 我可以有一个用例的链接吗? 【参考方案1】:

不要使用onprogress,只使用progress,与其他事件相同。我准备了一个plunkr 来演示:

  $http(
      method: "GET",
      url: "data.json",
      eventHandlers: 
        progress: function(event) 
          console.log("progress");
          console.log(event);
        ,
        readystatechange: function(event) 
          console.log("change");
          console.log(event);
        
      ,
      uploadEventHandlers: 
        progress: function(object) 
          console.log(object);
        
      
    )
    .success(function(json)  // succès
      $scope.lemmes = json;
      //console.log($http);
    ).error(function(error)  // erreur
      console.log(error);
    );

此外,从CHANGELOG 可以看出,在 angular 1.5.5 中已经修复了一个错误。更新到 1.5.5 或更高版本就可以了。

【讨论】:

感谢您的回答,我会在空闲时间尝试一下。干杯。 @mantisse 用绿色勾号接受它,我会得到一些业力

以上是关于如何将 eventHandlers 和 uploadEvntHandlers 与 angularjs 1 http 请求一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除所有eventhandler

将参数传递给 EventHandler [重复]

如何等待在 UWP 应用中触发 EventHandler?

如何“等待”引发 EventHandler 事件

如何对JavaFX lambda表达式进行反向工程并获取EventHandler和ActionListener的类定义

接受两个EventHandler的方法 和EventHandler