В своем приложении для составления гипертелеров я добавил программный контроль доступа к функции процессора транзакций (в файле logic.js).
Одна из строк кода, которую я добавил, выдает ошибку:
Вот строка кода:
for (consultantRef of transaction.newConsultants) {
//the following line of code does NOT work:
let consultantId = consultantRef.split('#')[1];
В консоли я получаю следующее сообщение об ошибке:
"transaction returned with failure: TypeError: consultantRef.split is not a function"
Для уточнения:
action.newConsultants - это массив следующего типа:
["resource: org.comp.app.Consultant # id1", "resource: org.comp.app.Consultant # id2",
"Ресурс: org.comp.app.Consultant # id3"]
Я хочу получить идентификатор соответствующих консультантов (например, «id1»).
Согласно документам (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split), функция разделения существует.
Но это не работает.
Как я могу получить идентификаторы консультантов?
UPDATE:
Когда я смотрю на атрибуты транзакции в консоли, я вижу следующее для атрибута "newConsultants":
newConsultants: Array (1)
0 "resource:org.comp.app.Consultant#john.doe@gmail.com_1535655902439"
Array Prototype
Для уточнения:
Транзакция - это объект, а именно следующий (скопированный из углового интерфейса):
this.transaction = {
$class: 'org.comp.app.AddToConsultantsOfProject',
'project': 'resource:org.comp.app.project#' + this.projectId,
'newConsultants': this.selectedConsultants,
'timestamp': new Date().getTime()
};