2017-08-27 19 views
0

私はangularjsの初心者であり、複数の視点から1つのコースを学習しています。学習中、私は小さなアプリケーションを開発していました。しかし、私は以下のようにエラーが発生しており、それをトレースすることはできません。助けてください 。

エラー:

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がcommitRouteでの関数 ではありません(角-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

あなたにはアングが含まれていますかあなたのHTMLにlar-route.js? –

答えて

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>)のモジュールとまったく同じであることを確認して解決しました。あなたが持っているものがそれ以降のバージョンである可能性があります。これはうまくいくはずです。

関連する問題