我想在控制器中注入服务。服务将返回$http.get()方法。
错误:[$injector:unpr] http://errors.angularjs.org/1.6.4/ $injector/unpr?p0=JsonFilterProvider%20%3C-%20JsonFilter
请指出我的代码中有什么错误?
<script>
var app = angular.module("myApp", []);
app.controller("myCntlr", ['$scope', 'myhttpService', function ($scope, myhttpService) {
$scope.myHttpMessage = myhttpService.httpGetService();
}]);
app.service("myhttpService", ['$http', '$scope', function ($http, $scope) {
this.httpGetService = function () {
console.log("httGetService");
$http.get('https://reqres.in/api/users').then(function (successResponse) {
console.log("http Get");
return successResponse;
}, function (errorResponse) {
console.log("http Get Error");
return errorResponse
});
};
}]);
</script>
<div ng-app="myApp" ng-controller="myCntlr">
<p>Http Message:{{myHttpMessage|Json}}</p>
</div>
3条答案
按热度按时间dgenwo3n1#
您不能在服务中注入
$scope
。那是不允许的。相反,您可以从服务和控制器内部的进程返回promise,类似于这样。c8ib6hqw2#
真正的问题是你没有得到你的服务的响应。所以JSON过滤器抛出一个错误
确保使用return命令从服务返回结果。
yacmzcpb3#