获得$ http服务并致电

时间:2014-11-04 00:51:56

标签: javascript angularjs

如何在angular js中获取$ http服务,然后在我的自定义asyncAction函数调用中调用get函数。没有涉及html(bootstrap ???)

编辑:可以放一些虚拟html使其能够触发控制器

我是http://jsfiddle.net/smartdev101/bdmkvr6g/

的jsfiddle
    asyncAction: function(resultFunction, faultFunction) {

    $http.get("https://api.github.com/users/angular")
    .success(function(data, status, headers, config) {
    // this callback will be called asynchronously
    // when the response is available
        console.log(data);
    })
    .error(function(data, status, headers, config) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
    });
},

一些进步 - 更新了小提琴,添加了一些html标签以使其有效,但

有人可以找到我一种方法,而不必在我的代码中插入标记,甚至在没有AttendeeProxyController标记的情况下自己触发ng-controller ????我更喜欢全手动启动和控制器触发过程。

或横向思考...我不需要这个控制器,它在那里我只能在没有HTML的javascript中访问$ http?

<span id="attendeeProxyController" ng-controller="AttndeeProxyController"></span>

2 个答案:

答案 0 :(得分:2)

  

OR横向思考......我没有事件需要这个控制器,它就在那里我只能在没有HTML的javascript中访问$ http?

是的,虽然我建议反对它,但可以做

var $http = angular.injector(["ng"]).get("$http");
// use $http here

这将为您提供可以使用的$ http的直接引用。然而,它反对Angular依赖注入的方式,如果你不小心的话,它通常会更难以测试并且更难以推理代码。

答案 1 :(得分:0)

就像@Benjamin所说,你可以使用invoke自动为你的函数注入依赖。

var $injector = angular.injector(["ng"]);
$injector.invoke(function($http){
    $http.get("https://api.github.com/users/angular").success(function(data){
        console.log(data);
    }).error(function(data){
        console.log(data);
    });
});

Here is $injector document.