gpt4 book ai didi

javascript - Angular 服务可以从一个 Controller 设置数据,但不能从另一个 Controller 设置数据

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

我有一个模块和两个 Controller :

var module = angular.module("app", ["agGrid", "ngAnimate", "ngSanitize", "ngDialog"])


module.controller("mainCtrl", ["$scope", "dataService","$timeout","dateFilter","ngDialog", "$http", function ($scope, $http, $timeout, dateFilter, ngDialog, dataService) {
}]);


module.controller("modalCtrl", ["$scope", "ngDialog", "dataService", function ($scope, ngDialog, dataService) {


$scope.printEntity = function () {
console.log(dataService.getEntityArray());
}

}]);

还有一个服务:

 module.factory("dataService", function () {

var entityArrayService = [];

return {
setEntityArray: function (entityArray) {
entityArrayService = entityArray;
},
getEntityArray: function () {
return entityArrayService;
}

};

});

我可以从我的第二个 Controller 中调用 dataService.setEntityArray(array),但是当我尝试从我的第一个 Controller 中调用它时,它告诉我 dataService.setEntityArray 不是一个函数

最佳答案

依赖注入(inject)的顺序不正确。 Controller 函数中的参数必须重复数组中元素的顺序。在你的例子中 dataService 是第二个参数:

module.controller("mainCtrl", ["$scope", "dataService","$timeout","dateFilter","ngDialog", "$http", function ($scope, dataService, $timeout, dateFilter, ngDialog, $http) {
}]);

关于javascript - Angular 服务可以从一个 Controller 设置数据,但不能从另一个 Controller 设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33282262/

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