Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.02.2017, 18:45
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Получаю ошибку: Error: missing ; before statement
Не работает вот такая вот запись?:

str = '{id: 4,image: "path",dessert: "text",calories: 100,fat: 10,comments: "comment"}';

$scope.dataTableTbody.push(eval(str));


Массив js-объектов:

$scope.dataTableTbody = [
        {
            id: 11,
            image: '/images/placeholder/1-square.jpg',
            dessert: 'Frozen yogurt',
            calories: 159,
            fat: 6.0,
            comments: 'Lorem ipsum'
        },
        {
            id: 13,
            image: '/images/placeholder/3-square.jpg',
            dessert: 'Eclair',
            calories: 262,
            fat: 16.0,
            comments: 'Lorem ipsum'
        }];



А вот если делаю так:


$scope.dataTableTbody.push(eval('[' + str + ']'));


то объект добавляется в массив, но в таком виде:

Array [ Object, Object, Object, Array[1] ]

где в Array[1] соответственно содержится наш Object


Нужно сделать, чтобы $scope.dataTableTbody в итоге был таким:
Array [ Object, Object, Object, Object ]
Ответить с цитированием
  #2 (permalink)  
Старый 27.02.2017, 19:02
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

$scope.dataTableTbody.push(eval('...[' + str + ']'));
Ответить с цитированием
  #3 (permalink)  
Старый 27.02.2017, 19:36
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Сообщение от destus Посмотреть сообщение
$scope.dataTableTbody.push(eval('...[' + str + ']'));
не совсем понял, что вы предлагаете.

сделал таким образом, всё заработало:

$scope.dataTableTbody = $scope.dataTableTbody.concat( eval('[' + str + ']') );
Ответить с цитированием
  #4 (permalink)  
Старый 27.02.2017, 19:40
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

okuznetsov1,
Вот так точнее.
$scope.dataTableTbody.push(...eval('[' + str + ']'));

Spread оператор.
Ответить с цитированием
  #5 (permalink)  
Старый 27.02.2017, 22:13
Аспирант
Отправить личное сообщение для okuznetsov1 Посмотреть профиль Найти все сообщения от okuznetsov1
 
Регистрация: 02.11.2016
Сообщений: 65

Сообщение от destus Посмотреть сообщение
okuznetsov1,
Вот так точнее.
$scope.dataTableTbody.push(...eval('[' + str + ']'));

Spread оператор.
погуглил, понял. в общем я с EcmaScript 5 работаю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поймать определенную ошибку? Shitbox2 Общие вопросы Javascript 3 13.03.2014 22:55
Вернуть ошибку Зосимов AJAX и COMET 3 17.10.2013 10:20
Как вывести ошибку в javascript? MCTrane Общие вопросы Javascript 13 05.05.2010 08:36
Выдает ошибку. Что делать? octavian Общие вопросы Javascript 1 20.02.2010 12:13
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04