如何用$ http,AngularJs替换ajax调用

时间:2015-04-29 06:09:17

标签: javascript jquery ajax angularjs

我正在尝试在我的php文件中实现angular.js,因为它只是一个文件项目,所以我在想我在哪里使用AngularJS。所以我决定用$http替换AJAX调用。

对于我导入的谷歌角度js文件

 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

并替换我的这个ajax调用

$.ajax({
    url: url,
    type: "GET",
    data: data,
    async: false,
    success: function(res) {
        resData = res;
    }
});

使用

$http({
    url: url,
    method: "GET",
    data: data
}).success(function(data, status, headers, config) {
    resData = data;
}).error(function(data, status, headers, config) {
    resData = data;
});

除了这些没有改变,但当我尝试执行我的代码时,我收到此错误

  

$ http未定义

3 个答案:

答案 0 :(得分:3)

为了使用$ http,您首先需要将其注入控制器

var module = angular.module('putNameHere', [])
module.controller('myCtrl', ['$http', function($http){  //injection here
    $http({
        url: url,
        method: "GET",
        data: data
    }).success(function(data, status, headers, config) {
        resData = data;
    }).error(function(data, status, headers, config) {
        resData = data;
    });
}])

答案 1 :(得分:1)

您将不得不实际加载角度模块和控制器,然后将$ http注入控制器:

OpenOffice Writer

Plunker Demo(将google.com更改为您需要使用的任何网址)

您还需要添加ng-app =&#39; app&#39;属性为<script> var app = angular.module('app', []); app.controller('HttpCtrl', function($http) { //this is the $http injection here //insert your $http code here }) </script> 标记,ng-controller =&#39; HttpCtrl&#39;属性为<html>标记。

答案 2 :(得分:0)

$ http服务是一个函数,它接受一个参数 - 一个配置对象 - 用于生成HTTP请求并返回一个带有两个$ http特定方法的promise:成功和错误。

$http.get('/someUrl').
   success(function(data, status, headers, config) {
// this callback will be called asynchronously
// when the response is available
  }).
error(function(data, status, headers, config) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});

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