如何在控制器之外使用$http?AngularJS中
How to use $http outside of a controller? in AngularJS
我想忘记"jQuery",因为我喜欢"AngularJS"。然而,我需要知道如何使用独立的任务,这些任务在我的应用程序的其他地方包含AngularJS。例如,在这种情况下,我想使用"$https AngularJS"函数来导入JavaScript文件。
示例(它曾在jQuery中执行):
$.get("url.js", function(data){ eval(data) }); //ok
console.info($.get); //code code code... ok
示例(如AngularJS中所述)
//In a controller
App.controller('Ctrllr', ['$http', function ($http) {
$http.get("url.js").success(function(data){
eval(data); //ok
});
console.info($http); //code code code.... ok
})
//outside
$http.get("url.js"); //$http is undefined
//How to use $http here?
正如您在上一次调用中看到的,$http在进程之外。现在,我想知道,如何在控制器/应用程序之外使用类$http或其他Angular utils?
使用此:
$http = angular.injector(["ng"]).get("$http");
当然可以在运行块中使用$http
angular.module('myModule', [])
.run(function($http) {$http.get('/url').success(mySuccessCallback)}
但是您仍然必须在角度上下文(应用程序)中使用$http
,因为需要依赖注入来注入$http
服务
谢谢大家,我认为唯一的解决方案是声明一个全局变量,然后为这个变量分配一个控制器$https
var myAjax;
App.controller('Ctrllr', ['$http', function ($http) {
myAjax = $http;
});
myAjax("url.js").success(function(code){eval(code)}
如果有人有更好的解决方案,欢迎。问候语:)
你不能那样做。但没关系,你不应该。
你应该做的是使用一个工厂来设置一个服务,然后你的控制器或任何你想要的东西都可以访问这个工厂。一个工厂看起来像这样。。。
app.factory('service', ['$http', function($http) {
var service = {}
service.get = function() {
return $http.get('/url');
}
return service.
}]);
然后,您可以将此服务注入到您想要的任何东西中,并可以从那里调用get函数,该函数将为您返回promise。
编辑:为了澄清,你不必回报你可以发挥想象力的承诺。
相关文章:
- 我无法使用angularJs($http)访问服务器
- spring和angularJS(我得到了类似HTTP状态404的错误)
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- Typescript angularjs$http获取响应类型(避免使用<any>)
- AngularJS使用http进行promise处理
- Angularjs http.get() Cross-Origin 请求被阻止
- 在AngularJS服务中使用$http回调
- AngularJs.调用$http.success中的jQuery函数
- 如何绑定“;这个“;在$http.post中->在AngularJS中解析/拒绝?(现在this=Window对象
- 访问Protractor/E2E测试中的$http数据(AngularJS)
- 处理$http AngularJS返回数据
- 如何在控制器之外使用$http?AngularJS中
- $http AngularJS 后不更新的数据范围
- $http AngularJS 应用程序初始化之前的请求
- $http angularjs 调用不是从带有 Worklight 的移动设备执行的
- 其中的行“xmlns:ng="http://angularjs.org"`工作/需要
- $http angularJS循环每个有传单问题的对象
- $http angularjs的数据,在缓存?但是为什么
- $http angularjs POST don't发送我的数据
- $http angularjs在回调时显示错误