Javascript ,我试图使它像id:res.client\u id,“text”:res.company\u name。是否可以从select2El.paramsobject中创建类似concat的对象属性?我认为出现问题的原因是使用了var,这不会形成块级闭包。我已经编
Javascript ,我试图使它像id:res.client\u id,“text”:res.company\u name。是否可以从select2El.paramsobject中创建类似concat的对象属性?我认为出现问题的原因是使用了var,这不会形成块级闭包。我已经编,javascript,angular,loops,object,properties,Javascript,Angular,Loops,Object,Properties,,我试图使它像id:res.client\u id,“text”:res.company\u name。是否可以从select2El.paramsobject中创建类似concat的对象属性?我认为出现问题的原因是使用了var,这不会形成块级闭包。我已经编辑了答案,你能检查一下吗?另外,你可以使用Object.assign合并对象。谢谢你@rudraprasad!非常感谢。顺便提一下,还有一个简单的问题。为什么我会遇到id未定义错误?是的,这就是我想做的。谢谢你的帮助。但是,很抱歉,我尝试了你的
,我试图使它像
id:res.client\u id,“text”:res.company\u name
。是否可以从select2El.params
object中创建类似concat的对象属性?我认为出现问题的原因是使用了var
,这不会形成块级闭包。我已经编辑了答案,你能检查一下吗?另外,你可以使用Object.assign
合并对象。谢谢你@rudraprasad!非常感谢。顺便提一下,还有一个简单的问题。为什么我会遇到id
未定义错误?是的,这就是我想做的。谢谢你的帮助。但是,很抱歉,我尝试了你的代码并得到了这个响应。此外,我还试图使它像id:res.client\u id,'text':res.company\u name
。是否可以从select2El.params
object中创建类似concat的对象属性?我认为出现问题的原因是使用了var
,这不会形成块级闭包。我已经编辑了答案,你能检查一下吗?另外,你可以使用Object.assign
合并对象。谢谢你@rudraprasad!非常感谢。顺便提一下,还有一个简单的问题。为什么我会遇到id
未定义错误?您正在返回res.sel['field_id']。但是,我在您的控制台日志中没有看到'sel'。您正在返回res.sel['field_id']。但是,我在您的控制台日志中没有看到“sel”。
var client_id = '', company_name = '', vacancy_category_id = '', category_name = '', user_id = '', full_name = '';
let select2El = {
params: [{
'id': '#client_id',
'url': '/consultant/vacancy/get-clients',
'field_id': client_id,
'field_text': company_name,
'success_response': $scope.clients
}, {
'id': '#clone_client_id',
'url': '/consultant/vacancy/get-clients',
'field_id': client_id,
'field_text': company_name,
'success_response': $scope.clients
}, {
'id': '#category_id',
'url': '/consultant/vacancy/get-categories',
'field_id': vacancy_category_id,
'field_text': category_name,
'success_response': $scope.categories
}, {
'id': '#owner_id',
'url': '/consultant/vacancy/get-users-by-type',
'field_id': user_id,
'field_text': full_name,
'success_response': $scope.users
}]
}
for (var key in select2El.params) {
var sel = select2El.params[key];
angular.element(sel['id']).select2({
width: '100%',
placeholder: '--Select--',
ajax: {
url: sel['url'],
dataType: 'json',
data: function (params) {
return {
search: params.term,
page: params.page || 1
}
},
processResults: function (response, params) {
params.page = params.page || 1;
return {
results: response.data.map(function (res) {
console.log(res);
return { id: res.sel['field_id'], 'text': res.sel['field_text'] }
}),
pagination: {
more: (params.page * 10) < response.total
}
};
},
success: function (response) {
sel['success_response'] = response.data;
}
}
});
}
return { id: res.sel['field_id'], 'text': res.sel['field_text']
var client_id = '', company_name = '', vacancy_category_id = '', category_name = '', user_id = '', full_name = '';
let select2El = {
params: [{
'id': '#client_id',
'url': '/consultant/vacancy/get-clients',
'field_id': client_id,
'field_text': company_name,
'success_response': $scope.clients
}, {
'id': '#clone_client_id',
'url': '/consultant/vacancy/get-clients',
'field_id': client_id,
'field_text': company_name,
'success_response': $scope.clients
}, {
'id': '#category_id',
'url': '/consultant/vacancy/get-categories',
'field_id': vacancy_category_id,
'field_text': category_name,
'success_response': $scope.categories
}, {
'id': '#owner_id',
'url': '/consultant/vacancy/get-users-by-type',
'field_id': user_id,
'field_text': full_name,
'success_response': $scope.users
}]
}
for (let key in select2El.params) {
let sel = select2El.params[key];
angular.element(sel['id']).select2({
width: '100%',
placeholder: '--Select--',
ajax: {
url: sel['url'],
dataType: 'json',
data: function (params) {
return {
search: params.term,
page: params.page || 1
}
},
processResults: function (response, params) {
params.page = params.page || 1;
return {
results: response.data.map(function (res, index) {
console.log(res);
return { id: sel['field_id'], 'text': sel['field_text'] }
}),
pagination: {
more: (params.page * 10) < response.total
}
};
},
success: function (response) {
sel['success_response'] = response.data;
}
}
});
}