簡體   English   中英

AngularJS:未知提供者:$ scopeProvider < - $ scope error(不在服務中注入$ scope)

[英]AngularJS: Unknown provider: $scopeProvider <- $scope error (not injecting $scope in the service)

我似乎與使用AngularJS和依賴注入的許多其他人有類似的問題,這是:我的AngularJS應用程序提供了一個未知的提供者:$ scopeProvider < - $ scope我嘗試將服務注入控制器時出錯。 盡管如此,我能找到的唯一常見錯誤(和解決方案)是不應該在服務函數中注入$ 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> 

提前致謝!

要注入控制器的依賴項的名稱需要與控制器函數聲明中的相應參數的順序相同(請參閱Angular的依賴注入指南 )。

您的控制器應該像這樣初始化:

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

首先列出AngularJS依賴項,然后是自定義依賴項,這也是一種常見的約定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM