如何在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>
答案 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);
});
});