gpt4 book ai didi

javascript - 将一个 Angular 工厂注入(inject)另一个工厂

转载 作者:行者123 更新时间:2023-12-03 11:12:02 26 4
gpt4 key购买 nike

我在将一个工厂注入(inject)另一个工厂时遇到了一些麻烦。

错误是:

  `ReferenceError: testDataService is not defined`

我以为这个问题应该很容易解决,但它让我很头疼。我似乎对依赖注入(inject)中涉及的各种语法有疑问。

在我的主工厂中,我正在进行如下初始服务调用:

   this.treeGridOptions = gadgetInitService.initTreeGridTEST();

到目前为止还不错。

然而,在下面它在initTreeGridTEST中爆炸了

这是我的 testDataService 工厂,它只返回一些硬编码选项:

 (function () {
'use strict';
angular.module('rage').factory('testDataService', [testData ]);

function testData() {
var service = {
treegridData: treegridData
};
return service;
}
function treegridData() {
return {
"altrows": true,
"sortable": true,
"columnsResize": true,
"editable": true,
"showToolbar": false,
"width": "100%",
"height": 400,
"source": {}
};
}
})();

并尝试在此处注入(inject)“testDataService”:

 (function () {
'use strict';

angular.module('rage').factory('gadgetInitService', ['testDataService', gridHierarchyService]);

function gridHierarchyService(testDataService) {
var service = {
initTreeGrid: initTreeGrid,
initColumnChart: initColumnChart,
initTreeGridTEST: initTreeGridTEST
}
return service;
}
function initTreeGridTEST() {
var myData = testDataService.treegridData();
return myData;
}
})();

感谢您的帮助,

鲍勃

最佳答案

testDataService 只是函数 gridHierarchyService 范围内的一个变量,并且您试图在定义它的函数之外访问它。只需将函数 initTreeGridTEST 移至工厂构造函数内即可。

 (function () {
'use strict';

angular.module('rage').factory('gadgetInitService',gridHierarchyService);

//Just used it instead of array notation, i prefer this since this is more readable
gridHierarchyService.$inject = ['testDataService'];

function gridHierarchyService(testDataService) {
//yeah keep service it in a variable incase you need to use service object for referring public functions as is. I am just returning it.
return {
initTreeGrid: _initTreeGrid,
initColumnChart: _initColumnChart,
initTreeGridTEST: _initTreeGridTEST
}

function _initTreeGridTEST() {
var myData = testDataService.treegridData();
return myData;
}

}

})();

关于javascript - 将一个 Angular 工厂注入(inject)另一个工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27535407/

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