2017-08-27 37 views
0

我是angularjs的初學者,學習它構成了一個關於複數視域的課程。在學習期間,我正在開發小型應用程序。但我收到如下錯誤,無法追蹤它。請幫忙 。

錯誤:

angular.js:11706 TypeError: $q.resolve is not a function 
    at commitRoute (angular-route.js:716) 
    at Scope.$broadcast (angular.js:14889) 
    at afterLocationChange (angular.js:11550) 
    at angular.js:11536 
    at Scope.$eval (angular.js:14570) 
    at Scope.$digest (angular.js:14386) 
    at Scope.$apply (angular.js:14675) 
    at bootstrapApply (angular.js:1458) 
    at Object.invoke (angular.js:4219) 
    at doBootstrap (angular.js:1456) 

應用代碼:

app.js

(function() { 

var app = angular.module("githubViewer", ["ngRoute"]); 

app.config(function($routeProvider) { 
$routeProvider 
    .when("/main", { 
    templateUrl: "main.html", 
    }) 
    .otherwise({ 
    redirectTo: "/main" 
    }); 

}); 

}()); 

github.js

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); 

的index.html

<!DOCTYPE html> 
<html ng-app="githubViewer"> 

<head> 
<meta charset="utf-8" /> 
<title>AngularJS Plunker</title> 
<script> 
document.write('<base href="' + document.location + '" />'); 
</script> 
<link rel="stylesheet" href="style.css" /> 
<script data-require="[email protected]" 
src="https://code.angularjs.org/1.3.20/angular.js" data-semver="1.3.20"> 
</script> 
<script data-require="[email protected]*" data-semver="1.6.2" 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular- 
route.js"></script> 
<script src="app.js"></script> 
<script src="MainController.js"></script> 
<script src="github.js"></script> 
</head> 

<body> 
<h1>Github Viewer</h1> 
<div ng-view></div> 
</body> 

</html> 

main.html中

<div> 
    <form name="searchUserForm"> 
    <input type="search" placeholder="Enter user to find" /> 
    <input type="submit" value="Search" /> 
    </form> 
    </div> 

MainController.js

var app = angular.module("githubViewer"); 
app.controller("MainController", function($scope) { 
$scope.searchUser = function(username) { 
    //pl 
}; 
}); 

UserDetails.js

var app = angular.module('githubViewer'); 

    app.controller('UserController', function($scope, $http,github) { 

    var onUserComplete = function(data) { 
    $scope.user = data; 
    github.getRepos($scope.user).then(onRepos, onError); 
    }; 

    var onRepos = function(data){ 
    $scope.repos = data; 
    } 


    $scope.username = 'angular'; 
    $scope.repoSortedOrder ='-stargazers_count'; 

    var onError = function(reason) { 
    $scope.error = "Could not fetch the data"; 
    } 

    $scope.searchUser = function(username) { 
     github.getUser(username).then(onUserComplete, onError); 
    }; 

    }); 

請上述幫助。

+0

請將錯誤消息添加到您的問題,否則將很難回答... – Phonolog

+0

angular.js:11706 TypeError:$ q.resolve不是函數 at commitRoute(angular-route.js:716) 。 在範圍$廣播(angular.js:14889) 在afterLocationChange(angular.js:11550) 在angular.js:11536 在範圍$的eval(angular.js:14570) 在範圍$摘要(。 angular.js:14386) 在範圍$應用(angular.js:14675) 在bootstrapApply(angular.js:1458) 在Object.invoke(angular.js:4219) 在doBootstrap(angular.js:1456 ) – ishantg

+0

你是否包含了angu lar-route.js到你的html? –

回答

0

我按照相同的教程,我有同樣的錯誤。我通過確保路由模塊與教程(<script data-require="[email protected]*" data-semver="1.2.14" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular-route.js"></script>)中的路由模塊完全相同來解決這個問題,您有可能是更高版本。這應該工作。

相關問題