gpt4 book ai didi

javascript - 为什么我的 Controller 找不到我的服务?

转载 作者:行者123 更新时间:2023-11-28 05:34:16 25 4
gpt4 key购买 nike

运行此代码时,我不断收到“错误:$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);

}]);

我的 Controller

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>

最佳答案

抱歉,我应该提到,我有一个主应用程序文件,我在其中使用 angular.module('APP', []); 声明了我的应用程序依赖项; 至于无法注入(inject)$scope 到服务中,我实际上只是想获取分页代码并使其可重用。关于如何实现这一目标有什么想法吗?顺便说一句,感谢您的快速回复。

这是原始 Controller ,其中包含我想要重复使用的分页代码。

angular.module('APP')

.filter('startFrom', function () {
return function (input, start) {
if (input) {
start = +start;
return input.slice(start);
}
return [];
};
})

.controller('dbCtrl', ['$scope', '$http', 'filterFilter', function ($scope, $http, filterFilter) {

// Link to PHP for mySQL content
$http.get("js/science.php")
.success(function(data){
$scope.videos = data; // Array named 'data'

// FROM HERE
//=====================
$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);
// TO HERE REUSABLE
//=====================

})

.error(function() {
$scope.data = "error in fetching data";
});

}]);

关于javascript - 为什么我的 Controller 找不到我的服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39475034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com