AngularJS 控制器错误 - :$http.get 不是控制器部分中的函数
Posted
技术标签:
【中文标题】AngularJS 控制器错误 - :$http.get 不是控制器部分中的函数【英文标题】:AngularJS Controller Error - : $http.get is not a function in controller section 【发布时间】:2015-07-04 21:42:20 【问题描述】:var hsbc = angular.module('hsbc',['ngResource','ngRoute']);
hsbc.config(['$routeProvider','$locationProvider', function ($routeProvider, $locationProvider)
//console.log('config part working');
$routeProvider
.when('/login',
controller: 'hsbccontroller',
templateUrl: 'modules/authentication/views/login.html',
hideMenus: true
)
.when('/gloabltranfer',
controller: 'hsbccontroller',
templateUrl: 'modules/home/views/gloabltranfer.html'
)
.when('/tranferReq',
controller: 'hsbccontroller',
templateUrl: 'modules/home/views/TransferRquest.html'
)
.when('/reviewdetail',
controller: 'hsbccontroller',
templateUrl: 'modules/home/views/Reviewdetails.html'
)
.when('/confirmdetail',
controller: 'hsbccontroller',
templateUrl: 'modules/home/views/confirmdetails.html'
)
.when('/',
controller: 'hsbccontroller',
templateUrl: 'modules/authentication/views/login.html'
)
.otherwise( redirectTo: '/login' );
]).controller('hsbccontroller', ['$scope','$http','$resource', function($scope,$resource,$http)
//console.log('controller part working');
$http.get('http://localhost:8080/1/').success(function(data)
alert(data);
$scope.greeting = data;
);
]);
【问题讨论】:
您的控制器参数的顺序与使用数组表示法声明的顺序不同。改变$resource
和$http
的位置。
应该是 .controller('hsbccontroller', ['$scope','$http','$resource', function($scope,$http, $resource)
酷,感谢它的工作伙伴。使用 Rest API 在 angularJs 中工作是相当新的。非常感谢。
【参考方案1】:
你需要改变$http和$resource的位置。
angularJS 的工作原理是,(如果以这种方式定义),angular 会尝试匹配提供给函数参数的字符串,以便它知道哪个参数是什么。 这基本上是为了缩小,这实际上会改变如下所示的变量。:
.controller('hsbccontroller', ['$scope','$http','$resource', function(a,b,c)
//console.log('controller part working');
a.get('http://localhost:8080/1/').success(function(data)
alert(data);
$scope.greeting = data;
);
]);
所以在这里,angularjs 知道:
a 表示 $scope,
b 是 $http,
c 是 $resource。
在您的情况下,它实际上是在尝试“$resource.get”并因此给您错误。 进一步阅读检查给定文档页面上关于缩小的注释: https://docs.angularjs.org/tutorial/step_05
【讨论】:
以上是关于AngularJS 控制器错误 - :$http.get 不是控制器部分中的函数的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS - HTTP 请求在控制器中发出预检请求,但不在 app.js 中
Angularjs $ rootScope:infdig在视图方法中调用http时出错
AngularJS $http 对 Web 服务的请求需要 CORS
在AngularJs中从控制器调用服务时,从$ get factory方法返回一个值
使用 DNN7 在 http put status 400 中获取 Angular js + Type Script 错误