Ошибка типа: невозможно прочитать свойство '0' из неопределенного в AngularJS - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать систему заявок в приложении, при создании этого метода я получаю эту странную ошибку, связанную с этой функцией, и в строке, где VM.state [0] ._ id упоминается, чтобы быть точным :

'use strict';
angular.module('app.modules.support')
    .controller('NewTicketController', [ 'ApiService', '$mdDialog', '$log', '$rootScope', '$mdToast',
        function (ApiService, $mdDialog, $log, $rootScope, $mdToast, states  /*, lodash */ ) {
            // PROPERTIES
            const VM = this;
            VM.gdpr = false;
            VM.public='public';
            VM.state = states,
            // METHODS

VM.createTicket = () => {
                const TICKET = {};
                const FIRST_MESSAGE = {};

                if (VM.form.$valid === true) {
                    FIRST_MESSAGE.body = VM.body.replace(/\n/g, '<br>');

                    TICKET.title = VM.title;
                    TICKET.space = VM.space;
                    /* eslint-disable camelcase */
                    VM.gdpr_phone!==''?TICKET.trace_rgpd = VM.gdpr_phone:TICKET.trace_rgpd='not';
                    TICKET.created_with = 'NeMa';
                    TICKET.viewed_by = [VM.userId];
                    TICKET.priority = 'low';
                    TICKET.id_lessor = 'AWBRcEpPV9YLqCHvv9nD'; //TODO: CHANGE THIS IN THE FUTURE
                    TICKET.events = [{
                        state_update : new Date().getTime(),
                        id_state     : VM.state[0]._id
                    }];
                    ApiService.Support.saveTicket(TICKET).then((result) => {
                        if (result.rows[0].items[0].index.created) {
                            VM.toast('Demande enregistrée');
                        }
                        FIRST_MESSAGE.id_ticket = result.rows[0].items[0].index._id;
                        ApiService.Support.saveMessage(FIRST_MESSAGE.id_ticket, FIRST_MESSAGE).then(() => {
                            $rootScope.$broadcast('/support/partialReload', FIRST_MESSAGE.id_ticket);
                            $mdDialog.hide();
                        });
                    });
                }
            }; 

есть идеи, как мне решить эту проблему?

1 Ответ

0 голосов
/ 05 февраля 2020

это просто означает, что «VM.state» не определено в то время, когда вы пытаетесь получить доступ к VM.state [0] ._ id; добавьте оператор console.log, чтобы выяснить, почему он не определен.

...