Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在控制器外部使用$http?在AngularJS_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 如何在控制器外部使用$http?在AngularJS

Javascript 如何在控制器外部使用$http?在AngularJS,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我想忘记“jQuery”,因为我喜欢“AngularJS”。但是,我需要知道如何使用在我的应用程序中其他地方包含AngularJS的独立任务。 在这种情况下,我想使用“$https AngularJS”函数导入一个JavaScript文件 示例(在jQuery中使用): $.get(“url.js”,函数(数据){eval(数据)})//好啊 console.info($.get)//代码代码。。。好啊 示例(如AngularJS中所述) //在控制器中 App.controller('Ctr

我想忘记“jQuery”,因为我喜欢“AngularJS”。但是,我需要知道如何使用在我的应用程序中其他地方包含AngularJS的独立任务。 在这种情况下,我想使用“$https AngularJS”函数导入一个JavaScript文件

示例(在jQuery中使用):

$.get(“url.js”,函数(数据){eval(数据)})//好啊
console.info($.get)//代码代码。。。好啊
示例(如AngularJS中所述)

//在控制器中
App.controller('Ctrllr',['$http',函数($http){
$http.get(“url.js”).success(函数(数据){
eval(数据);//确定
});
console.info($http);//代码……好的
})
//外面
$http.get(“url.js”);//$http未定义
//如何在这里使用$http?

正如您在上一次调用中所看到的,$http位于进程之外。现在,您想知道如何在控制器/应用程序之外使用类$http或其他角度UTIL吗?

您不能这样做。但这很好,您不应该这样做

你应该做的是使用一个工厂设置一个服务,然后你的控制器可以访问这个工厂或者你想要的任何东西

app.factory('service', ['$http', function($http) {
   var service = {}

   service.get = function() {
     return $http.get('/url');
   }
   return service.
 }]);
然后,您可以将此服务注入任何您想要的内容,并可以从中调用get函数,该函数将为您返回承诺


编辑:为了澄清,你不必回报你可以发挥想象力的承诺。

当然你可以在一个小时内使用$http


但是您仍然必须在角度上下文(应用程序)中使用
$http
,因为需要依赖项注入才能注入
$http
服务谢谢大家,我认为唯一的解决方案是声明一个全局变量,然后为该变量分配一个控制器$https

var-myAjax;
App.controller('Ctrllr',['$http',函数($http){
myAjax=$http;
});
myAjax(“url.js”).success(函数(代码){eval(代码)}
如果有更好的解决方案,欢迎使用。问候语:)

使用以下内容:

$http = angular.injector(["ng"]).get("$http");

你所说的外部是什么意思?在加载控制器之前?在哪个事件上与角度上下文相关?在加载控制器之前提供的答案是否不满足你的要求?因为你可以这样做,而你不应该这样做。同时,让工厂访问服务也很荒谬。下次读他的问题。好的建议,你应该读一下太好了!按照他写的方式,这是不可能的。你可以在angular controller之外使用某种http服务,但不是那样。我不认为你要找的词是荒谬的。这是实现这一点的标准方法,它使其模块化、干净/有组织。他想在所有提供商之外使用服务。
$http = angular.injector(["ng"]).get("$http");