gpt4 book ai didi

javascript - Angular 依赖项和提供程序不可用错误

转载 作者:行者123 更新时间:2023-11-28 00:37:07 26 4
gpt4 key购买 nike

我正在加载在 Github 上找到的文件上传脚本

<script type="text/javascript" src="{% static 'bower_components/angular-file-upload/angular-file-upload.min.js' %}"></script>

并且有一个数据导入模块:

(function () {
'use strict';

angular
.module('TestSite.import', [
'TestSite.import.controllers'
]);

angular
.module('TestSite.import.controllers', ['angularFileUpload']);
})();

以及 Controller

(function () {
'use strict';

angular
.module('TestSite.import.controllers' , ['angularFileUpload'])
.controller('UploadController', UploadController);

UploadController.$inject = ['$scope','angularFileUpload'];

/**
* @namespace UploadController
*/
function UploadController($scope, FileUploader) {
$scope.uploader = new FileUploader();

};

})();

我收到一个错误

 Error: [$injector:unpr] Unknown provider: angularFileUploadProvider <- angularFileUpload

我对模块声明和 DI 感到困惑。为什么我需要声明模块 TestSite.import.controllers 两次?我正在注入(inject)正确的依赖项(angularFileUpload),但仍然收到该错误,还有什么是提供程序以及为什么 Angular 无法找到它?

最佳答案

看起来您混淆了文件上传服务的名称。正确的依赖注入(inject)如下所示:

angular
.module('TestSite.import.controllers')
.controller('UploadController', UploadController);

UploadController.$inject = ['$scope', 'FileUploader'];

/**
* @namespace UploadController
*/
function UploadController($scope, FileUploader) {
$scope.uploader = new FileUploader();
};

另请注意,您不必重新定义模块TestSite.import.controllers。要访问已经注册的模块,您需要使用 getter 表示法,这意味着没有依赖项数组作为第二个参数:

.module('TestSite.import.controllers').controller(...);

关于javascript - Angular 依赖项和提供程序不可用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28374074/

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