gpt4 book ai didi

javascript - 如何将配置文件加载到 Angular 对象

转载 作者:太空宇宙 更新时间:2023-11-04 02:53:26 25 4
gpt4 key购买 nike

我在我的 NodeJS 服务器上设置了一个简单的配置页面。

4 个输入字段来存储一些 IP。

这些字段绑定(bind)到

var formApp = angular.module('formApp', [])
.controller('formController', function($scope) {
$scope.formData = {};
loadConfig();
$scope.$watchCollection('formData',function() {
saveConfig($scope);
});
});

模型中的每个更改都会调用 saveConfig(),它将配置保存在服务器上:

function saveConfig($scope) {
socket.emit('save_config', {config: $scope.formData});
}

这似乎有效。服务器正确打印了接收到的对象内容,并且保存过程中没有错误。

现在我想在每次打开页面时将配置加载到 Angular 模型中。

loadConfig() 告诉服务器加载 config.json,解析它,并将其发送到浏览器:

socket.on('load_config', function(data) {
console.log("[INFO] Config received:");
angular.element(document.getElementById('config')).scope().formData = data;
});

但它似乎不起作用..在页面刷新时,所有字段都是空的。

此外,$scope.formData = {};清空对象,因此配置立即被覆盖。我怎样才能防止这种情况? (我不知道这是否真的是整个问题)我的方法有什么严重错误吗?

谢谢

更新:

看来也不完全是错误的……刷新时,输入为空,但如果我开始输入并 console.log formData 对象,它似乎以一种奇怪的嵌套方式加载了值

{"config":{"config":{"config":{"config":{},"ip2":"tzfrzftztrf","ip3":"ztu6tzzt6"},"ip2":"hhhkkizbi"},"ip2":"hhkkkkööö"},"ip3":"h"}

这是 4 次刷新。所以它似乎以某种方式工作,但无法正确加载

最佳答案

您可以创建用于加载配置的服务并将其注入(inject)到模块中

var formApp = angular.module('formApp', [])
formApp.service('LoadConfigService', function($http) {
return({
loadConfig: function() {
var promise = $http.get('config.json').then(function (response) {
return response.data;
});

return promise;
}});
});
.controller('formController', function($scope,LoadConfigService) {
$scope.formData = {};
LoadConfigService.loadConfig().then(function(data) {
//Action After response
});
$scope.$watchCollection('formData',function() {
saveConfig($scope);
});
});

关于javascript - 如何将配置文件加载到 Angular 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305869/

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