JHipster с vue — Как показать данные из Backend во Frontend

Я новичок в JHipster и создал свою первую конечную точку, которая дает мне сущность «приятель» подключенного пользователя:

@GetMapping("/buddies/view")
    public ResponseEntity<Buddy> getConnectedBuddy() { [...] }

Это работает нормально, и я вижу в журналах, что подключенные пользователи, переходящие на эту страницу, запускают контроллер, получение выполняется успешно и дает мне пользователя:

Exit: com.mycompany.myapp.web.rest.AccountResource.getAccount() with result = UserDTO{login='haha', firstName='null', lastName='null', email='[email protected]', imageUrl='null', activated=true, langKey='en', createdBy=anonymousUser, createdDate=2020-12-10T14:27:22.264Z, lastModifiedBy='anonymousUser', lastModifiedDate=2020-12-10T14:27:22.264Z, authorities=[ROLE_USER]}

Теперь я хочу отобразить данные этого пользователя на странице, похожей на страницу http://localhost:9000/<ENTITY-NAME>/{id}/view. Я успешно создал саму страницу, продублировав buddy-details.vue и buddy-details.component.ts и внес необходимые изменения, а также добавил новую страницу в файл «entities.ts». Это все работает.

Но теперь я получаю страницу просмотра с формой сущности, хотя и без каких-либо данных. Не могли бы вы сказать мне: как я могу получить данные Backend с помощью Typescript?

Думаю, мне нужно использовать класс buddy.service.ts, но я не знаю, как это сделать.

Изменить (дополнительная информация):

В моем buddy.service.ts я создал метод get():

  public get(): Promise<IBuddy> {
    return new Promise<IBuddy>((resolve, reject) => {
      axios
        .get(`${baseApiUrl}/view`)
        .then(res => {
          resolve(res.data);
        })
        .catch(err => {
          reject(err);
        });
    });
  }

Затем он вызывается в самостоятельно созданном файле buddy-active.component.ts:

import { Component, Vue, Inject } from 'vue-property-decorator';

import { IBuddy } from '@/shared/model/buddy.model';
import BuddyService from './buddy.service';

@Component
export default class BuddyActive extends Vue {
  @Inject('buddyService') private buddyService: () => BuddyService;
  public buddy: IBuddy = {};

  beforeRouteEnter(to, from, next) {
    next(vm => {
        vm.getBuddy();
    });
  }

  public getBuddy() {
    this.buddyService()
      .get()
      .then(res => {
        this.buddy = res;
      });
  }

  public previousState() {
    this.$router.go(-1);
  }
}

Спасибо за помощь.

Вы определили BuddyService в файле buddy.service.ts для получения данных с помощью axios?

Gaël Marziou 12.12.2020 11:06

@GaëlMarziou Я добавил информацию в начальный пост, чтобы ее можно было прочитать!

J.C. 14.12.2020 14:14

Ну, я не знаю, что вы видите, когда вы выполняете свой код в отладчике Chrome?

Gaël Marziou 14.12.2020 14:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
301
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В конце концов проблема оказалась довольно простой. Я сделал все, что требовалось, но импортировал неправильный скрипт в файл buddy-actice.vue. Если у вас такая же проблема, вы можете просто прочитать мой оригинальный комментарий. Однако вам придется сделать конечную точку java самостоятельно.

Спасибо, Гаэль Марзиу, за то, что указал мне правильное направление.

Другие вопросы по теме