Класс, экземпляры которого представляют в runtime-значения полей heap-таблиц, объявленных через Heap.GenericLink.
Предоставляет удобный интерфейс для работы со ссылкой.
Использование этого класса отдельно, вне значения поля таблицы, не несёт никакой пользы и не поддерживается.
type*: string
Идентификатор таблицы, на запись которой указывает данная ссылка. Совпадает со свойством type соответсвующей таблицы.
id: string
Уникальный идентификатор конкретной записи, на которую указывает данное значение поля.
get(ctx: app.Ctx): Promise<HeapObject>
"Синтаксический сахар" к выполнению запроса getById к целевой таблице с целевым идентификатором. Возвращает heap-объект, на который указывает текущее значение ссылки.
В отличие от RefLink.get, возвращаемый объект имеет typescript-тип общего heap-объекта без привязки к конкретному типу таблицы, поскольку заранее не известно - на какую таблицу указывает ссылка. Для уточнения типа объекта рекомендуется использовать метод isMyRecord.
app.Ctx
getTargetTableRepo(ctx: app.Ctx): Promise<HeapTableRepo>
Вовзращает репозиторий таблицы, на которую указывает текущее значение поля. Обратите внимание, что метод асинхронный.
app.Ctx
Контекст запроса. Используется для внутренней реализации.Выяснение названия объекта, на основе которого была создана задача.
const Tasks = Heap.Table('tasks', {
title: Heap.String(),
basedOn: Heap.GenericLink(),
})
const task = await Tasks.getById(ctx, req.params.id)
const basedOn = await task.basedOn.get(ctx)
const baseOnDisplayName = Orders.isMyRecord(baseOn)
? 'Order #' + basedOn.num
: Tasks.isMyRecord(basedOn)
? 'Task ' + basedOn.title
: 'Unexpected based-on object ' + task.basedOn.type + ' ' + task.basedOn.id