in lib/modeling/modeler.ts [244:269]
private getSubModel<TData extends ModelBase = ModelBase>(entityField:Field, value:any, options: DataOptions = defaultDataOptions):Observable<TData | Array<TData>>{
let repository:ReadonlyRepository<EntityModelBase> = this.paris.getRepository(<DataEntityType>entityField.type);
let valueObjectType:EntityConfigBase = !repository && valueObjectsService.getEntityByType(<DataEntityType>entityField.type);
if (!repository && !valueObjectType)
return null;
let data$:Observable<TData | Array<TData>>;
const getItem = repository
? Modeler.getEntityItem.bind(null, repository)
: this.getValueObjectItem.bind(null, valueObjectType);
if (entityField.isArray) {
if (value.length) {
let propertyMembers$: Array<Observable<TData>> = value.map((memberData: any) => getItem(memberData, options));
data$ = combineLatest(propertyMembers$);
}
else
data$ = of([]);
}
else
data$ = getItem(value, options);
return data$;
}