Javascript Angular中未知的$http提供程序
我需要在config方法中使用Javascript Angular中未知的$http提供程序,javascript,angularjs,angularjs-directive,angular-routing,Javascript,Angularjs,Angularjs Directive,Angular Routing,我需要在config方法中使用$http服务。但我无法在配置中使用$http,我收到未知提供程序错误消息 我的代码: .config(function($http, $routeProvider, $provide) { $http.get("sampleslist.js").success(function(data) { var loop = 0, currentRoute; for (loop = 0; loop < data[loop].p
$http
服务。但我无法在配置中使用$http
,我收到未知提供程序
错误消息
我的代码:
.config(function($http, $routeProvider, $provide) {
$http.get("sampleslist.js").success(function(data) {
var loop = 0, currentRoute;
for (loop = 0; loop < data[loop].pages.length; loop++) {
currentRoute = data[loop].pages;
var routeName = "/" + currentRoute[loop].name;
$routeProvider.when(routeName, {
templateUrl:"/" + currentRoute.name + ".html",
})
}
})
app = {controller: $controllerProvider.register}
})
.config(函数($http、$routeProvider、$provide){
$http.get(“sampleslist.js”).success(函数(数据){
var loop=0,currentRoute;
for(loop=0;loop
您能提供解决方案吗?如果只需要发出AJAX请求,您可以从新的注入器中实际检索$http服务器:
.config(function($routeProvider, $provide) {
var $http = angular.injector(['ng']).get('$http');
$http.get("sampleslist.js").success(
function(data) {
var loop = 0,
currentRoute;
for (loop = 0; loop < data[loop].pages.length; loop++) {
currentRoute = data[loop].pages;
var routeName = "/" + currentRoute[loop].name;
$routeProvider.when(routeName, {
templateUrl: "/" + currentRoute.name + ".html",
})
}
})
app = {
controller: $controllerProvider.register,
}
})
.config(函数($routeProvider,$provide){
var$http=angular.injector(['ng']).get('$http');
$http.get(“sampleslist.js”).success(
功能(数据){
var循环=0,
当前路线;
for(loop=0;loop
我们不能在配置中使用http。有关更多详细信息,请查看此链接:
您只能在.config文件中插入提供程序。但$http不是提供程序,您的angular应用程序正在搜索名为$http的提供程序,但无法找到它,因此引发了错误 如何解决这个问题
如果在加载angular controller之前需要任何ajax调用,可以在.run中进行调用,在
.config
中使用$http
不是一个好的做法。您可以在.run
中使用它,也可以使用.service
或.factory
使用该服务。您是否可以控制sampleslist.js
?如果是,可以使用标签下载它,并为变量赋值
//sampleslist.js
var samplelist = {...}
//index.html
<script src="samplelist.js"></script>
//sampleslist.js
var samplelist={…}
//index.html
然后,您可以使用
angular.constant
或仅使用变量samplelist
将此值注入angular。正如您所说,在配置阶段不能使用$http。不过,您可以在运行阶段使用它。可能是$routeProvider的副本。当(routeName,{})这个函数不起作用时,为什么?我甚至不建议OP绕过Angular设置的(有意)限制;即使如此,success
也是一种不推荐使用的方法,不应使用。以这种方式访问$http
似乎很危险……据我所知/读到的,这就是角度工作的流程。上面我想说的是,您可以在加载控制器之前运行一些东西。我应该提到数据而不是页面加载。app.config()app.run()指令的编译函数(如果在dom中找到它们)app.controller()指令的链接函数(如果找到它们,同样如此)与实践无关。我们无法在.config中插入$http。