1
このコードを実行すると、 "Error:$ injector:unpr Unknown Provider"が引き続き表示されます。私はこの問題に似た多くの他の答えを見てきましたが、どこにエラーがあるのか分かりません。私のコントローラが私のサービスを見つけることができないのはなぜですか?
また、私はこのサービスを "myService()"で正しく呼びますか?
私はAngularには比較的新しいので、助けや助言をいただければ幸いです。前もって感謝します。
マイサービス
angular.module('APP')
.service('myService', ['$scope' function($scope) {
$scope.search = {};
$scope.resetFilters = function() {
// needs to be a function or it won't trigger a $watch
$scope.search = {};
};
// pagination controls
$scope.currentPage = 1;
$scope.totalItems = $scope.videos.length;
$scope.entryLimit = 5; // videos per page
$scope.noOfPages = Math.ceil($scope.totalItems/$scope.entryLimit);
// $watch search to update pagination
$scope.$watch('search', function (newVal, oldVal) {
$scope.filtered = filterFilter($scope.videos, newVal);
$scope.totalItems = $scope.filtered.length;
$scope.noOfPages = Math.ceil($scope.totalItems/$scope.entryLimit);
$scope.currentPage = 1;
}, true);
}]);
マイコントローラー
angular.module('APP')
.filter('startFrom', function() {
return function (input, start) {
if (input) {
start = +start;
return input.slice(start);
}
return [];
};
})
.controller('dbCtrl', ['$scope', '$http', 'filterFilter', 'myService', function ($scope, $http, filterFilter, myService) {
$http.get("js/science.php")
.success(function(data){
$scope.videos = data;
myService();
})
.error(function() {
$scope.data = "error in fetching data";
});
}]);
マイリンク
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.10.0.js"></script>
<!-- CDN's and API's-->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular-animate.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<!-- Services -->
<script src="controllers/myService.js"></script>
<!-- Dependencies -->
<script src="js/ui-router-title.js"></script>
<script src="js/angular-youtube-embed.js"></script>
<script src="js/angular-ui-router.min.js"></script>
<script src="js/app.js"></script>
<!-- Controllers -->
<script src="controllers/headerCtrl.js"></script>
<script src="controllers/dbCtrl.js"></script>
<script src="controllers/scienceCtrl.js"></script>
<script src="controllers/politicsCtrl.js"></script>
<script src="controllers/pageCtrl.js"></script>
<script src="controllers/tabsCtrl.js"></script>
<script src="controllers/modalCtrl.js"></script>
最初に、$ scopeをサービスに挿入することはできません。 $ scope、controller、およびservicesの役割については、ドキュメントとチュートリアルを参照してください。また、 'APP'モジュールを初期化/宣言する必要があります。 'APP'、[]を使用して、ある時点で宣言する必要があります - '[]'に注意してください。あなたに依存しています。この第2引数を持つことは、あなたが新しいモジュールを宣言していることを 'angular.module'に伝えることです(それを拡張するために既存モジュールを取り出すことと比較して)。 – plong0