【发布时间】:2020-05-21 04:14:19
【问题描述】:
我正在尝试在应用程序中创建票务系统,在创建此方法时,我遇到了与此功能相关的奇怪错误,并且在提到 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();
});
});
}
};
有什么办法可以解决这个问题吗?
【问题讨论】:
-
定义
VM.state的代码在哪里?这个错误并不奇怪——实际上这是一个非常常见的错误。 -
VM.state是undefined- 正是错误所说的。 -
函数属性中的VM.state=states
-
1) 如果您编辑帖子并将新行放在那里,它会更容易阅读,并且 2) 仍然缺少一些信息。
VM.state = states是在调用VM.createTicket()之前执行的吗?那么states定义了吗? -
我编辑了类的代码,我试图将 id_state 更改为 |id_state: VM.state[VM.state.length - 1]._id] 但无法读取未定义的属性长度
标签: javascript angularjs api ticket-system