문제 설명
각도 [$injector:unpr] 알 수 없는 공급자 오류를 해결하는 방법? (How to solve angular [$injector:unpr] Unknown provider error?)
저는 FreshlyPress Api라는 wordpress에 대해 angular, ionic, cordova를 사용하여 간단한 하이브리드 앱을 개발하려고 합니다. 이것은 내 파일입니다.
app.js
var App = angular.module("SampleApp", ["ionic"]);
App.service("FreshlyPressed",["$http", "log", FreshlyPressed]);
App.controller("AppCtrl" ,["$scope" , "FreshlyPressed", "$log" , AppCtrl]);
function AppCtrl($scope, FreshlyPressed, $log){
$scope.posts = [];
$scope.refresh = function(){
FreshlyPressed.getBlogs($scope);
}
}
function FreshlyPressed($http, $log){
this.getBlogs =function($scope){
$http.jsonp("https://public‑api.wordpress.com/rest/v1.1/freshly‑pressed?callback=JSON_CALLBACK")
.success(function(result){
$scope.posts=resul.posts;
});
};
}
index.html
<!DOCTYPE html>
<html lang="en" data‑ng‑app="SampleApp">
<head>
<meta charset="utf‑8">
<title>Freshly Fressed</title>
<!‑‑‑Ionic Libs‑‑>
<link rel="stylesheet" href="lib/ionic/css/ionic.css">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<!‑‑Myapp‑‑>
<link rel="stylesheet" href="css/style.css">
<script src="js/app.js"></script>
</head>
<body data‑ng‑controller="AppCtrl">
<ion‑header‑bar class="bar‑balanced">
<h1 class="title">Freshly Pressed</h1>
<button class="button" data‑ng‑click="refresh()">
<i class="icon ion‑refresh"></i>
</button>
</ion‑header‑bar>
<ion‑content>
<div class="card list" data‑ng‑repeat="p in posts">
<div class="item item‑avatar‑left">
<img data‑ng‑src="{{ p.author.avatart_URL }}" alt="">
<h2>{{ p.author.nice_name }}</h2>
<p><a href="{{ p.author.URL }}">{{ p.author.URL }}</a></p>
</div>
<div class="item item‑body">
<h1>{{ p.title }}</h1>
{{ p.content }}
</div>
</div>
</ion‑content>
</body>
</html>
하지만 이 코드를 실행할 때 다음과 같은 오류가 발생합니다.
Error: [$injector:unpr] Unknown provider: logProvider <‑ log <‑ FreshlyPressed
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=logProvider%20%3C‑%20log%20%3C‑%20FreshlyPressed
at ionic.bundle.js:8900
at ionic.bundle.js:13094
at Object.getService [as get] (ionic.bundle.js:13241)
at ionic.bundle.js:13099
at getService (ionic.bundle.js:13241)
at invoke (ionic.bundle.js:13273)
at Object.instantiate (ionic.bundle.js:13290)
at Object.<anonymous> (ionic.bundle.js:13151)
at Object.invoke (ionic.bundle.js:13282)
at Object.enforcedReturnValue [as $get] (ionic.bundle.js:13135)
참조 솔루션
방법 1:
App.service("FreshlyPressed",["$http", "log", FreshlyPressed]);
App.controller("AppCtrl" ,["$scope" , "FreshlyPressed", "$log" , AppCtrl]);
Seems to me you are missing an $
from the first log
.
방법 2:
It should be $log
instead of log
in following line‑
App.service("FreshlyPressed",["$http", "$log", FreshlyPressed]);
Angular injector is not able to find the log
module and therefore the logprovider
error. Correct module is $log
(by prashna prashna、Ágoston Székely、Chandan)