AngularJS错误:[$injector:unpr]未知提供商:$achorScrollProvider <- $a
AngularJS Error: [$injector:unpr] Unknown provider: $achorScrollProvider <- $achorScroll <- MainController
我正在尝试在AngularJS中构建一个自定义服务。它抛出一些错误,我无法理解,因为我是新的AngularJS。
我在StackOverflow中看到了一个类似的问题,但解决方案并没有解决我的问题。
这是程序执行期间的控制台错误:
angular.js:13920 Error: [$injector:unpr] Unknown provider: $achorScrollProvider <- $achorScroll <- MainController
http://errors.angularjs.org/1.5.8/$injector/unpr?p0=%24achorScrollProvider%20%3C-%20%24achorScroll%20%3C-%20MainController
at angular.js:68
at angular.js:4511
at Object.getService [as get] (angular.js:4664)
at angular.js:4516
at getService (angular.js:4664)
at injectionArgs (angular.js:4688)
at Object.invoke (angular.js:4710)
at $controllerInit (angular.js:10354)
at nodeLinkFn (angular.js:9263)
at compositeLinkFn (angular.js:8620)
HTML代码:<!DOCTYPE html>
<html ng-app="githubViewer">
<head>
<script data-require="angular.js@*" data-semver="1.5.8" src="https://code.angularjs.org/1.5.8/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
<script src="github.js"></script>
</head>
<body ng-controller="MainController">
<h1>{{message}}</h1>
<div>
{{error}}
</div>
{{countdown}}
<form name="searchUser" ng-submit="search(username)">
<input type="seach" placeholder="User to find" ng-model="username" required>
<input type="submit" placeholder="Search" >
</form>
<div ng-include="'userDetails.html'" ng-show="user">
</div>
</body>
</html>
Javascript (script.js): // Code goes here
(function() {
var app = angular.module("githubViewer", []);
var MainController = function($scope, $github, $interval, $log, $anchorScroll, $location) {
var onRepo = function(data) {
$scope.repos = data;
$location.hash("userDetails");
$anchorScroll();
};
/* var onUserComplete = function(response) {
$scope.user = response.data;
$http.get($scope.user.repos_url)
.then(onRepos,onError)
};*/
var onUserComplete = function(data) {
$scope.user = data;
$github.getRepos($scope.user).then(onRepo, onError);
};
var onError = function(reason) {
$scope.error = "Error fetching data";
};
$scope.search = function(username) {
$log.info("search for " + username);
$github.getUser(username).then(onUserComplete, onError);
if (countDownInterval) {
$interval.cancel(countDownInterval);
$scope.countdown = null;
}
};
var decrementCountdown = function() {
$scope.countdown--;
if ($scope.countdown === 0) {
$scope.search($scope.username);
}
};
var countDownInterval = null;
function startCountDown() {
countDownInterval = $interval(decrementCountdown, 1000, $scope.countdown);
}
$scope.username = "angular";
$scope.message = "GitHub Viewer";
$scope.repoSortOrder = "-stargazers_count";
$scope.countdown = 5;
startCountDown();
};
//written like this incase of minification
//app.controller("MainController",["$scope","$http","$interval",MainController]);
//normal method
app.controller("MainController", MainController);
MainController.$inject = ['$scope', 'github', '$interval', '$log', '$achorScroll', '$location'];
}());
javascript (github.js): (function(){
var github=function($http){
var getUser=function(username){
return $http.get("https://api.github.com/users/"+username).then(function(response){
return response.data;
});
};
var getRepos=function(user){
return $http.get(user.repos_url).then(function(response){
return response.data;
});
};
return{
getUser:getUser,
getRepos:getRepos
};
};
var module=angular.module("githubViewer");
module.factory("github",github);
//angular.module("githubViewer").factory("github",github);
}());
我附加我的代码plunk:plunk
您的$anchorScroll
中缺少一个n
。(你的代码中提到的是$achorScroll
)
修正后,代码似乎运行良好。
这是更新后的/工作柱塞URL: https://plnkr.co/edit/5JOGtDlhoRBFjIjwJjaV?p=preview
希望这对你有帮助!
相关文章:
- 没有找到相关文章