У меня есть функция с объектом внутри, как это:
$scope.createAuction = function () {
var auction = { auction: { langData: {} } };
if($scope.selected.tab === $scope.infoTabs[0]) {
auction.auction = {
type: 'car',
layout: $scope.selected.description
};
if(auction.auction.layout === 1) {
for(var i = 0, l = $scope.langInput.values.length; i < l; i++) {
/*
auction.auction.langData.push({
$scope.langInput.values.selected: {
name: $scope.inputs.auction_name_account[i + 1]
}
});
*/
console.log($scope.inputs.auction_name_account[i + 1]);
console.log($scope.langInput.values[i].selected);
}
}
}
console.log(JSON.stringify(auction));
}
$scope.langInput.values[i].selected
- это pl
и eng
, но пользователь может изменить его и добавить новый или удалить один.
$scope.inputs.auction_name_account[i + 1]
- это описание на вышеуказанных языках, предоставленное пользователем. Также, если пользователь меняет вышеуказанные языки, он должен предоставить описание на языках, которые он выбрал.
Консольные данные хороши, но я не знаю, как построить этот объект, поэтому после завершения работы функции это будет выглядеть так:
{
"auction":{
"type":"account",
"layout":1
"langData":{
"pl":{
"name":"description in polish provided by user"
}
"eng":{
"name":"description in english provided by user"
}
}
}
}
Я пытался построить его с помощью этого кода, который находится в /* ... */
, но он не работает, вызывая синтаксическую ошибку.
хорошо, я знаю, что этот JSON ниже отличается от объекта выше, но на самом деле не имеет значения, что позже я буду использовать JSON.stringify (). У меня проблема только с привязкой объектов к объекту langData.
Редактировать
Как подсказывает @Patrick Evans, я изменил свой код, поэтому я больше не перезаписываю его в коде:
$scope.createAuction = function () {
var auction = { auction: { langData: {} } };
if($scope.selected.tab === $scope.infoTabs[0]) {
Object.assign(auction.auction, {
type: 'account',
layout: $scope.selected.description
});
if(auction.auction.layout === 1) {
//alert($scope.langInput.values.length);
for(var i = 0, l = $scope.langInput.values.length; i < l; i++) {
auction.auction.langData.push({
$scope.langInput.values.selected: {
name: $scope.inputs.auction_name_account[i + 1]
}
});
console.log($scope.inputs.auction_name_account[i + 1]);
console.log($scope.langInput.values[i].selected);
}
}
}
if($scope.selected.tab === $scope.infoTabs[1]) {}
if($scope.selected.tab === $scope.infoTabs[2]) {}
console.log(JSON.stringify(auction));
}
Я все еще получаю синтаксическую ошибку:
Uncaught SyntaxError: Неожиданный токен.
из этой строки
$scope.langInput.values.selected: {
также моя IDE выделяет его и говорит
: ожидается вместо этого. учитывая