Я пытаюсь получить данные с помощью Apollo. Вот простой запрос:
export const CurrentUserForProfile = gql`
query getGroupDetails($groupId: Long, $groupType: String, $tags: [Tag]) {
nodes: NodesRelay (
first: 50
where: {
tags: { CONTAINS: $tags },
OR: {
AND: {
nsParentId: { EQ: $groupId }
nsParentType: { EQ: $groupType }
}
superGroupNodeLinks: {
groupId: { EQ: $groupId }
groupType: { EQ: $groupType }
}
}
}
) {
elements {
data {
...nodeFields
ext {
...nodeExtFields
}
}
}
pageInfo {
...pageInfoFields
}
}
}
fragment nodeFields on Node {
id {
id
type
}
subtype
internalId
businessId
scadaId
isGroup
isTemporary
nsParentId
nsParentType
ouId
description
shortDescription
status
isNsPowered
tags
owners
notes
version
}
fragment nodeExtFields on NodeExt {
id {
id
type
}
asParentId
asParentType
isAsPowered
isAsInconsistent
isAsPoweredInParallel
isAsPoweredByExtSource
isAsPoweredByDiffSource
maneuverId
entityStatusMap
createdAt
createdBy
updatedAt
updatedBy
version
}
fragment pageInfoFields on PageInfo {
hasNextPage
hasPreviousPage
startCursor
endCursor
}
`;
, и я использую его, как сказано в учебнике:
this.data = this.apollo
.watchQuery({
query: CurrentUserForProfile,
variables: {
"groupId": 15,
"groupType": "sec_subst",
"tags": ["GIS"]
},
fetchResults: true,
returnPartialData: false,
}).valueChanges
.pipe(
map((res: any) => res.data.nodes.elements)
)
the HTML:
<ng-container *ngFor="let a of data | async">
{{a.data.id.type}} <br>
</ng-container>
Я получаю всего 10 строк "lv_line"
. Если я изменю logi c, подпишусь на компонент и сделаю console.log(data)
, я увижу то же самое. Это могло быть правильно, но это не так. Данные, которые я получаю, совершенно неверны, и если я проверю вкладку сети, независимо от того, какой logi c в моем приложении, данные верны, а не просто массив из 10 элементов со свойством type
всегда "lv_line".
Вот результат сети:
, а результат HTML выглядит так:
Что я делаю не так? Я пробовал все, что мог придумать, безуспешно, получая тот же неправильный результат, попытка за попыткой.