TypeError: Невозможно прочитать свойство '0' из неопределенного в Angularjs - PullRequest
0 голосов
/ 21 марта 2019

Я видел много вопросов, связанных с TypeError: Невозможно прочитать свойство '0' из неопределенного , но ни одно из них не поможет исправить мою ошибку.

Мое требование - кнопка onClick (например, ng-click = "addRow (tester.devices)"). Мне нужно вызвать функцию -

В котором, если уже есть список устройств / вызов, то нет необходимости определять _scope.tester.devices = [], иначе _scope.tester.devices = []; определяется, чтобы избежать ошибки: Невозможно прочитать свойство 'unshift' из неопределенного

Мой код выглядит следующим образом

_scope.addRow = function (list) {
        _scope.uniqueId = Math.round((Math.random() * 10) * 10000);
        if (_scope.tester.devices) {
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });


        } else {
            _scope.tester.devices = [];
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
        }
        _scope.modifyField[list[0].uniqueId] = true;
    }

Edit1: я определил $ scope как _scope. Так что это не проблема.

Этот вопрос решен

Ответы [ 3 ]

1 голос
/ 21 марта 2019

Передача массива в функцию, похоже, что вы передаете неправильный параметр в функцию _scope.addRow ()

, он работал нормально после передачи массива в функцию.

1 голос
/ 21 марта 2019

Я решил это, изменив _scope.modifyField[list[0].uniqueId] = true; на _scope.modifyField[_scope.uniqueId] = true;.

К сожалению, я не смог удалить свой вопрос, так как кто-то потратил на это время в соответствии с правилами переполнения стека.

Код выглядит следующим образом:

 _scope.addRow = function (list) {
        _scope.uniqueId = Math.round((Math.random() * 10) * 10000);
        if (_scope.tester.devices) {
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
             _scope.modifyField[list[0].uniqueId] = true;

        } else {
            _scope.tester.devices = [];
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
        }
        _scope.modifyField[_scope.uniqueId] = true;
    }
0 голосов
/ 21 марта 2019

Привет, Вы уверены, что ваш аргумент функции ('список') является массивом?Кажется неопределенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...