我不明白何时使用 Angular 而不是 jquery 来处理 ajax 请求。
例如,我为什么要使用:
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;
}
});
}
??
最佳答案
我的理解是,有几个原因首选第一个:
- $http 是可测试的。实际上可以消除它使用的后端并测试 $http 请求,而无需实际发送请求。
- $http 会为您执行一些常见的“操作”,例如在 POST 请求上将内容类型设置为“application/json”。
- $http 返回一个类似于 Angular 中其他区域的“promise”,这意味着 .success、.done 与 Angular 一致。 jquery 也允许类似,但语法略有不同。
- $http 成功和错误回调将在 Angular 内部执行。如果您使用 jQuery,那么可能需要调用 $apply,这在某些情况下可能会很棘手。
- $http 无需 jQuery 即可工作。因此,如果您没有其他原因包含 jQuery,那么使用 $http 可能会节省几k。
- $http 更短。主观的,但就我个人而言,它对我来说读起来更好。
但是,除了这些之外,您通常应该能够做到其中之一。
关于javascript - 为什么在 Angular 中使用 $http 而不是 jquery 的 ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18596744/