gpt4 book ai didi

javascript - Angular 如何设置从 json 文件读取的 IP 地址和端口作为其他 Controller 的服务

转载 作者:行者123 更新时间:2023-12-03 04:54:29 25 4
gpt4 key购买 nike

我使用服务从本地 json 文件读取 IP 地址和端口。我在我的“主”应用程序 Controller 中获取此信息。

1。如何提取 IP 地址和端口并将其保存在另一个服务中,以便另一个 Controller 可以使用它而无需再次读取配置文件?注意:没有html。我不想在用户界面上公开此信息。

2。在下面的代码中,json 数据是从服务中的 getConfig 调用返回的,但 $scope.restIpAddr 和 $scope.cfg 都在控制台日志中打印为未定义。

// service
angular.module('RDash')
.service('configService', ['$http', function ($http) {
var url = 'config.json';
this.getConfig = function () {
return $http.get(url).then(function(response) {
return response.data;
});
};
}]);

//main controller
function MasterCtrl($scope, configService, $cookieStore) {

$scope.restIpAddr = null;
$scope.restPort = null;

configService.getConfig().then(function (data) {
$scope.cfg = data;
$scope.restIpAddr = $scope.cfg.restIpAddr;
console.log('MasterCtrl - getConfig - data: ', $scope.cfg);
console.log('MasterCtrl - getConfig - restIpAddr: ', $scope.restIpAddr);
}, function (error) {
$scope.status = 'MasterCtrl - getConfig - Unable to load configuration data: ' + error.message;
});

console.log('MasterCtrl - getConfig - config: ', $scope.cfg);

// snip

最佳答案

为什么不尝试设置一个“配置”值?

    angular.module('main').value('config', {
port : '',
ip : ''
});

然后在主模块运行函数中设置这些值...

angular.module('main').run(['config', 'configService', function (config, configService) {
configService.getConfig().then(function (response) {
//Just in case that wasn't parsed before
var dataObject = JSON.parse(response.data);
config.port = dataObject.restPort;
config.ip = dataObject.restIpAddr;
}, function (errorResponse) {
//Handle error
});
}]);

然后您可以将“config”值注入(inject)到您需要的Service或Controller中,然后访问该值。

希望有帮助。

关于javascript - Angular 如何设置从 json 文件读取的 IP 地址和端口作为其他 Controller 的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42494116/

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