我试图将我的对象动态转换为列表,因此我在视图中构建而不是在控制器上声明。
我不想这样声明:custom_fields.title_field.type_text_field = []
因为title_field
是动态构建的,它可以是任何类型的文本,例如full_name
我的json原样:
"custom_fields":{
"title_dynamic_generate_field":{
"type_text_field":{
"name":"John",
"first_name":"Wick"
},
"type_boolean_field":{
"is_badass": true,
"is_good_movie": true
},
"type_select_field": {
"this_select": 1,
"i_got_this": "nope i didnt got this"
}
},
并成为:
"custom_fields":{
"title_dynamic_generate_field":{
"type_text_field":[{
"name":"John",
"first_name":"Wick"
}],
"type_boolean_field":[{
"is_badass": true,
"is_good_movie": true
}],
"type_select_field": [{
"this_select": 1,
"i_got_this": "nope i didnt got this"
}]
},
我尝试转换为数组的对象type_text_field
也可以是动态的,例如type_date_field
或type_select_field
等等。
我的ng-model
是这样的:
ng-model="objectApp.application.applicant.custom_fields[layout.dynamic_title][input.type][input.variable]"
[input.type]
是我尝试转换为数组,我该如何实现?我尝试使用$index
,但结果很奇怪。
答案 0 :(得分:0)
我们可以通过2种解决方案来实现:
关于您的任务有一个问题:
?如果
type_text_field
中有多个title_dynamic_generate_field
,您希望如何处理?因为您想将其转换为"type_text_field":[{},...]
但是我对这个问题的回答是:
如果我们知道我们想要将主题params
发送给我的动态json
,我的意思是,如果我们知道title_dynamic_generate_field
或type_text_field
的关键是什么var data = {
"custom_fields": {
dynamicParamIs1: 'title_dynamic_generate_field',
dynamicParamIs2: 'type_text_field',
"title_dynamic_generate_field": {
"type_text_field": {
"name": "John",
"first_name": "Wick"
}
}
}
}
var paramHelper1 = json.custom_fields[json.custom_fields.dynamicParamIs1];
var paramHelper2 = json.custom_fields.dynamicParamIs2;
var solutionA = function (object, as) {
var array = [];
for (var key in object) {
var newObject = object[key];
array.push(newObject);
}
object[as] = array;
}
solutionA(paramHelper1, paramHelper2);
,我们这样做:
json
我们更改了
params
的模型,它可以帮助我们检测(找到)键
如果我们不知道动态var data = {
"custom_fields": {
"title_dynamic_generate_field": {
"type_text_field": {
"name": "John",
"first_name": "Wick"
}
}
}
}
var solutionB = function (json) {
var array = [];
for (var key in json) {
var j1 = json[key];
for (var key2 in j1) {
var j2 = j1[key2];
for (var key3 in j2) {
var fullObject = j2[key3];
array.push(fullObject);
j2[key3] = array;
}
}
}
}
solutionB(data);
是什么,我们会这样做:
for
此示例是手动的,我们使用嵌套
keys
来检测=IF(AND(N12="Yes",J14>=48),(F10-F7+(F10<F7)-(F9-F8))*24,0)
名称