gpt4 book ai didi

javascript - AngularJS:未知提供者:$scopeProvider <- $scope 错误(未在服务中注入(inject) $scope)

转载 作者:行者123 更新时间:2023-11-30 12:01:00 25 4
gpt4 key购买 nike

我似乎与许多其他使用 AngularJS 和依赖项注入(inject)的人有类似的问题,即:当我尝试将服务注入(inject) Controller 时,我的 AngularJS 应用程序给出了一个 Unknown provider: $scopeProvider <- $scope 错误。尽管如此,我到处都能找到的唯一常见错误(和解决方案)是不应该在服务函数中注入(inject) $scope 或 $rootScope。我没有这样做。我发现的另一个问题是您应该将所有依赖项作为字符串传递,因为由于缩小(我现在在我的开发操作中有),它们无法被 AngularJS 识别。我也这样做了。所以现在的问题是……我的逻辑/结构有什么问题,我该如何解决?

这是我的应用程序的基本结构:

angular.module('MyApp', ['ngMaterial']);

angular
.module('MyApp')
.factory('Utils', function(){
return {
normalCase: function(str){
result = '';
str.split(' ').forEach(function(string, i){
result += string[0].toUpperCase() + string.slice(1).toLowerCase();
if(i<str.split(' ').length) result += ' ';
});
return result;
}
})
.controller('AppController', ['$scope', '$mdDialog', 'Employee', 'Utils', '$http',
function($scope, Employee, Utils, $http, $mdDialog){
$scope.employee.firstName = Utils.NormalCase(employee.firstName);
}])

另外,index.html文件中添加文件的顺序是:

<script src="js/app.js"></script>
<script src="js/models/Employee.js"></script>
<script src="js/models/Utils.js"></script>
<script src="js/controllers/AppController.js"></script>
<script src="js/controllers/EmployeeListController.js"></script>
<script src="js/controllers/ScorecardController.js"></script>

提前致谢!

最佳答案

要注入(inject)到 Controller 中的依赖项的名称需要与 Controller 函数声明中相应参数的顺序相同(参见 Angular's guide to Dependency Injection )。

你的 Controller 应该像这样初始化:

.controller('AppController', ['$scope', '$http', '$mdDialog', 'Employee', 'Utils', 
function($scope, $http, $mdDialog, Employee, Utils){
$scope.employee.firstName = Utils.NormalCase(employee.firstName);
}])

这也是一个常见的约定,首先列出 AngularJS 依赖项,然后是您的自定义依赖项。

关于javascript - AngularJS:未知提供者:$scopeProvider <- $scope 错误(未在服务中注入(inject) $scope),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36624352/

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