gpt4 book ai didi

javascript - $injector 无法解决所需的依赖关系

转载 作者:行者123 更新时间:2023-12-02 16:14:38 24 4
gpt4 key购买 nike

我正在尝试养成按照 LIFT 协议(protocol)构建 Angular 项目的习惯(Locate、Identify、Flat、Try(Dry)),但我在解决来自其他项目的依赖关系时遇到了一些困难文件。

我有以下工厂:

(function () {

'use strict';

angular
.module('CBPWidget', [])
.factory('apiManufacturers', apiManufacturers);

function apiManufacturers () {

function hello () {
return 'hello';
}

return {
hello: hello
};

}

})();

和以下 Controller :

(function () {

'use strict';

angular
.module('CBPWidget', [])
.controller('stepOneController', stepOneController);

stepOneController.$inject = ['$scope', 'apiManufacturers'];

function stepOneController ($scope, apiManufacturers) {

$scope.step = 'step1';
console.log(apiManufacturers.hello);

}

})();

并抛出以下错误:

Error: [$injector:unpr] Unknown provider: apiManufacturersProvider <- apiManufacturers <- stepOneController

我的工厂 JS 文件位于 HTML 中的 Controller JS 文件上方(将被缩小)。

任何关于我哪里出错的建议将不胜感激,因为我是这样构建项目的新手。

最佳答案

这里您创建了两次 CBPWidget 模块。angular.module('CBPWidget',[]) 用于创建模块并angular.module('CBPWidget') 用于获取已创建的模块。 因此将 Controller 代码替换为:

(function () {

'use strict';

angular
.module('CBPWidget')//now you are getting CBPWidget module
.controller('stepOneController', stepOneController);

stepOneController.$inject = ['$scope', 'apiManufacturers'];

function stepOneController ($scope, apiManufacturers) {

$scope.step = 'step1';
console.log(apiManufacturers.hello);

}

})();

关于javascript - $injector 无法解决所需的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29804931/

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