AngularJS: Error: $injector:unpr in simple script
AngularJS: Error: $injector:unpr in simple script
我完成了包含代码 运行 的教程,并尝试将其制作成我自己的。但不幸的是,它不起作用。它给出了以下错误:
angular.min.js:84Error: [$injector:unpr] http://errors.angularjs.org/1.2.9/$injector/unpr?p0=%24templateRequestProvider%20%3C-%20%24templateRequest%20%3C-%20%24route%20%3C-%20ngViewDirective
at Error (native)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:6:449
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:125
at Object.c [as get] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:193
at c (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at Object.d [as invoke] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:417)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:211
at c (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at Object.d [as invoke] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:417)
我知道这里出现这个错误的频率更高,但大多数处理的代码比我的更复杂,而且似乎不适用。
我正在关注的教程已上传到此处,工作状态:http://gerbenboersma.com/sites/AngularTests/
而我自己的代码和它几乎相似,在我上一个版本中甚至使用了所有相同的名称。这是:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<title>Gerben Boersma | Portfolio | 2016</title>
<link rel="stylesheet" href="css/styles.css">
<script src="lib/angular.min.js"></script>
<script src="lib/angular-route.min.js"></script>
<script src="js/works.json"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div class="outer-content">
<div class="green-bar"></div>
<div class="content" ng-view>
</div>
</div>
</body>
</html>
和controllers.js:
var artistControllers = angular.module('artistControllers', []);
artistControllers.controller('ListController', ['$scope', '$http', function($scope, $http) {
$http.get('js/works.json').success(function(data) {
$scope.works = data;
$scope.artistOrder = 'name';
});
}]);
和app.js:
var myApp = angular.module('myApp', [
'ngRoute',
'artistControllers'
]);
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/list', {
templateUrl: 'partials/list.html',
controller: 'ListController'
}).
otherwise({
redirectTo: '/list'
});
}]);
我看这些作品已经太久了,甚至没有那么多。但是我无法找到问题所在。根据 AngularJS 错误参考,我命名事物的方式可能有问题,但在这些最新版本中,我什至没有更改原始教程示例中的名称,这似乎工作得很好。
我希望有人能对此有所了解。
您正在使用 angular 1.2.9 以及新的 angular-route 1.5.8,这会导致上述问题,只需使用 angular 1.5.8 而不是 1.2.9 ,我创建了 plunker:http://plnkr.co/edit/szCGtnZQsXYFkTrjBNZZ?p=preview,尝试取消注释 1.2.9 并注释 1.5.8 版本的 angular,问题将被复制
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script>
<!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.9/angular.min.js"></script> -->
我完成了包含代码 运行 的教程,并尝试将其制作成我自己的。但不幸的是,它不起作用。它给出了以下错误:
angular.min.js:84Error: [$injector:unpr] http://errors.angularjs.org/1.2.9/$injector/unpr?p0=%24templateRequestProvider%20%3C-%20%24templateRequest%20%3C-%20%24route%20%3C-%20ngViewDirective
at Error (native)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:6:449
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:125
at Object.c [as get] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:193
at c (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at Object.d [as invoke] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:417)
at http://portfolio2.gerbenboersma.com/lib/angular.min.js:32:211
at c (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:200)
at Object.d [as invoke] (http://portfolio2.gerbenboersma.com/lib/angular.min.js:30:417)
我知道这里出现这个错误的频率更高,但大多数处理的代码比我的更复杂,而且似乎不适用。
我正在关注的教程已上传到此处,工作状态:http://gerbenboersma.com/sites/AngularTests/
而我自己的代码和它几乎相似,在我上一个版本中甚至使用了所有相同的名称。这是:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<title>Gerben Boersma | Portfolio | 2016</title>
<link rel="stylesheet" href="css/styles.css">
<script src="lib/angular.min.js"></script>
<script src="lib/angular-route.min.js"></script>
<script src="js/works.json"></script>
<script src="js/controllers.js"></script>
<script src="js/app.js"></script>
</head>
<body>
<div class="outer-content">
<div class="green-bar"></div>
<div class="content" ng-view>
</div>
</div>
</body>
</html>
和controllers.js:
var artistControllers = angular.module('artistControllers', []);
artistControllers.controller('ListController', ['$scope', '$http', function($scope, $http) {
$http.get('js/works.json').success(function(data) {
$scope.works = data;
$scope.artistOrder = 'name';
});
}]);
和app.js:
var myApp = angular.module('myApp', [
'ngRoute',
'artistControllers'
]);
myApp.config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/list', {
templateUrl: 'partials/list.html',
controller: 'ListController'
}).
otherwise({
redirectTo: '/list'
});
}]);
我看这些作品已经太久了,甚至没有那么多。但是我无法找到问题所在。根据 AngularJS 错误参考,我命名事物的方式可能有问题,但在这些最新版本中,我什至没有更改原始教程示例中的名称,这似乎工作得很好。 我希望有人能对此有所了解。
您正在使用 angular 1.2.9 以及新的 angular-route 1.5.8,这会导致上述问题,只需使用 angular 1.5.8 而不是 1.2.9 ,我创建了 plunker:http://plnkr.co/edit/szCGtnZQsXYFkTrjBNZZ?p=preview,尝试取消注释 1.2.9 并注释 1.5.8 版本的 angular,问题将被复制
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.js"></script>
<!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.9/angular.min.js"></script> -->