Angular :: Ошибка при получении файла среды - PullRequest
0 голосов
/ 10 июля 2020

Я новичок в Angular2, я добавил некоторые конфигурации API в файл среды, это не дает никаких исключений во время компиляции, но получает исключение во время выполнения.

import { environment as defaultEnvironment } from './environment.defaults'

export const environment = {
  ...defaultEnvironment,
  production: false,
  apiService: {
    serviceUrl: defaultEnvironment.baseURL + "TestService/",
    getCompanies: this.serviceUrl + "GetCompanies",
  }
};

Во время выполнения, когда его значение выборки serviceUrl в getCompanies, я получаю исключение " Uncaught TypeError: Невозможно прочитать свойство serviceUrl из undefined "

Может ли кто-нибудь помочь узнать, почему это происходит? Спасибо

1 Ответ

1 голос
/ 10 июля 2020

Обычно this имеет тип typeof globalThis globalThis . Который, как мне кажется, имеет любой тип в среде машинописного текста. Вот почему компилятор не жалуется (если вы не используете strict: true в машинописном тексте.

Я полагаю, что angular делает что-то немного по-другому в файлах окружения. Они специально анализируются, чтобы быть может получить заменяющие значения в вашей кодовой базе.

Тем не менее, то, что вы пытаетесь сделать там, не сработает. this никогда не будет тем объектом, который вы сейчас создаете. Вам нужно будет разделить это на:

import { environment as defaultEnvironment } from './environment.defaults'

const serviceUrl = defaultEnvironment.baseURL + "TestService/";

export const environment = {
  ...defaultEnvironment,
  production: false,
  apiService: {
    serviceUrl,
    getCompanies: serviceUrl + "GetCompanies",
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...