Мой виджет соединяет объект с joinByOne
, но присоединенный объект недоступен в self.play
в public/js/always.js
(только его идентификатор).Он доступен в views/widget.html
, хотя.
// index.js
{
name: 'groups',
type: 'array',
schema: [
name: 'buildings',
type: 'array',
schema: [
{
name: '_building',
label: 'Building',
type: 'joinByOne',
withType: 'building',
required: true,
filters: {
projection: {
title:1,
latitude:1,
longitude:1,
_url: 1
}
}
}
]
]
}
В views/widget.html
присоединенные объекты доступны, как и ожидалось.
// views/widget.html
<div class="map" data-groups='{{ data.widget.groups | jsonAttribute({ single:true }) }}'></div>
В консоли браузера $('.map').data('groups')[0].buildings[0]._building
содержит присоединенный объект, как и ожидалось.
В self.play
, с другой стороны, data.groups[0].buildings[0]
содержит только builgindId
, но не фактический _building
.
// public/js/always.js
apos.define('map-widgets',{
extend: 'apostrophe-widgets',
construct: function(self,options) {
self.play = function($widget,data,options) {
console.log(data.groups[0].buildings[0])
}
}
})
Это регистрирует объектсодержит buildingId
объединенного объекта, но не _building
, т.е. сам объект.
Похоже, что соединение не было выполнено в объекте, доступном в data
в self.play
.Это специально?
Как получить доступ к объединенному объекту в self.play
?