错误:- $http 在 Angular JS 中未定义
Posted
技术标签:
【中文标题】错误:- $http 在 Angular JS 中未定义【英文标题】:ERROR:- $http is undefined in Angular JS 【发布时间】:2015-02-06 10:53:37 【问题描述】:我收到这个控制器的错误,$http 没有定义。请告诉我缺少什么..
define(
['activityFeedTimeStamp' ],
function(app)
app.register
.controller(
'timeStampController',
[
'$scope',
'$rootScope',
function($scope, $rootScope)
$http.get('http://localhost:7001/ebiz/ebizdashboard/activityfeed/updatetimestamp').
success(function(data, status, headers, config)
// $('#timeStampVal').html(data.lastacesstime);
$('#timeStampVal').html(hiiiiiiiii);
).
error(function(data, status, headers, config)
$("#timeStamp").hide();
);
]);
);
【问题讨论】:
AngularJs ReferenceError: $http is not defined 的可能重复项 【参考方案1】:你还没有在控制器中注入 $http 服务
app.register
.controller(
'timeStampController',
[
'$scope',
'$rootScope',
'$http'
function($scope, $rootScope,$http)
$http.get('http://localhost:7001/ebiz/ebizdashboard/activityfeed/updatetimestamp').
success(function(data, status, headers, config)
// $('#timeStampVal').html(data.lastacesstime);
$('#timeStampVal').html(hiiiiiiiii);
).
error(function(data, status, headers, config)
$("#timeStamp").hide();
);
]);
);
【讨论】:
【参考方案2】:像这样将“$http”注入控制器:
.controller(
'timeStampController',
[
'$scope',
'$rootScope',
'$http', // need to inject $http into controller
function($scope, $rootScope, $http)
基本上,您使用的任何服务(无论是您定义的还是内置的 Angular 服务,如 $http)都需要注入到控制器中才能使用。
由于您使用的是对 minify 友好的控制器语法(在数组和函数参数中都列出了注入),因此您需要在这两个地方添加它。
查看文档: https://docs.angularjs.org/guide/di (特别是“内联数组注释”部分)
【讨论】:
【参考方案3】:我在使用的时候也遇到了同样的问题
myApp.controller('mainController', ['$scope', function($scope,)
//$http was not working in this
]);
我已将上面的代码更改为下面给出的。请记住包含 $http(2 次),如下所示。
myApp.controller('mainController', ['$scope','$http', function($scope,$http)
//$http is working in this
]);
而且效果很好。
来源:https://***.com/a/22125671/2439715
【讨论】:
我进行了注入但仍然收到“http未定义”的错误。以上是关于错误:- $http 在 Angular JS 中未定义的主要内容,如果未能解决你的问题,请参考以下文章
使用 DNN7 在 http put status 400 中获取 Angular js + Type Script 错误
Angular http post 仅在 Chrome 中在服务器上返回 403 错误
angular.js 和 require.js 得到未捕获的错误:[$injector:modulerr]