小编典典

为什么在Angular中使用$ http而不是jquery的ajax?

ajax

我不明白何时对ajax请求使用Angular over jquery。

例如,为什么要使用:

function ItemListCtrl ($scope, $http) {
    $http.get('example.com/items').success(function (data) {
    $scope.items = data;
  }
}

代替

  function ItemListCtrl ($scope) {
        $.ajax({type: "GET", url: 'example.com/items',
        success: function (result) {                    
                             $scope.items = data;
                    }
    });
   }

??


阅读 231

收藏
2020-07-26

共1个答案

小编典典

我的理解是,首选第一个原因有两个:

  • $ http是可测试的。实际上,可以将其使用的后端存根并测试$ http请求,而无需 实际 发送请求。
  • $ http为您执行一些常见的“工作”,例如在POST请求中为您将内容类型设置为“ application / json”。
  • $ http返回一个与其他区域相似的“承诺”,这表示.success和.done与angular一致。jQuery也允许类似,但是语法略有不同。
  • $ http成功和错误回调将在angular内部执行。如果使用jQuery,则可能有必要调用$ apply,这在某些情况下可能很棘手。
  • $ http可以不使用jQuery。因此,如果没有其他理由要包含jQuery,则可以使用$ http节省几千美元。
  • $ http较短。主观的,但就我个人而言,它对我来说更好。

除了这些之外,您通常应该能够执行任何一项操作。

2020-07-26