Closed alliswellhuan closed 6 years ago
@alliswellhuan ,这个在前端的js里面,
主要是用了这个npm包。import * as yaml from 'js-yaml';做json到yaml的转换,yaml到json,到时展示上前端遍历做了下。 所以yml-->property,就是先yml--->json--->遍历keys,然后最终变成了对应的properties了
changeYamlPage(){
let params = {}
for (let i = 0; i < this.persistent.length; i++) {
params[this.persistent[i].key] = this.persistent[i].value;
if (
this.persistent[i].key === '' ||
this.persistent[i].value === ''
) {
toastr.error('当前存储配置不能为空,请进行补全!');
return;
}
}
this.persistent = [];
let keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
this.persistent.push({
key: keys[i],
value: params[keys[i]],
});
}
this.code = yaml.safeDump(this.translateToYaml(params));
if(this.code.indexOf('{}') == 0){
this.code = ''
}
$("#m_modal_yaml_editor").modal('show');
}
changePropertyPage(){
let params = {}
for (let i = 0; i < this.persistent.length; i++) {
params[this.persistent[i].key] = this.persistent[i].value;
if (
this.persistent[i].key === '' ||
this.persistent[i].value === ''
) {
toastr.error('当前存储配置不能为空,请进行补全!');
return;
}
}
this.persistent = [];
let keys = Object.keys(params);
for (let i = 0; i < keys.length; i++) {
this.persistent.push({
key: keys[i],
value: params[keys[i]],
});
}
this.code = yaml.safeDump(this.translateToYaml(params));
this.code_properties = ``;
keys.map(item => {
this.code_properties +=
item + '=' + params[item] + '\n';
});
$("#m_modal_property_editor").modal('show');
}
请教一个技术问题: 配置管理界面中关于配置存储有三种方式,一种是grid列表,一种是YML模式,一种是Property模式; 查看了源代码,这块的数据主要是通过查询数据库后返回Properties对象; 不明白这里Properties对象是如何转换为YML格式的文件和Property模式的文件,没有找到对应的代码
查看了前台js,存储配置是使用代码插件monaco editor来实现的,大致看了下js文件,没有找到yml格式和Property格式如何转换,难道是在js里面将Properties对象一个个字符串拼接?
实在困惑... ...