Заменить URL шаблона в компонентах на основе глобальной константы - PullRequest
1 голос
/ 19 июня 2020

Помогите мне найти решение для следующей задачи:

допустим, у нас есть глобальная константа env, и я хочу использовать эту константу для замены URL-адреса шаблона в компонентах во время сборки. Для разных констант мы должны использовать разные URL-адреса шаблона. По умолчанию каждый компонент имеет URL-адрес шаблона. Для каждой константы env мы можем определить URL-адрес шаблона для некоторого компонента, если URL-адрес шаблона не определен для компонента, необходимо использовать шаблон по умолчанию.

Например:

Следующие компоненты используют URL-адрес шаблона по умолчанию:

AppComponent1 -> 'defaultTemplate1'

AppComponent2 -> 'defaultTemplate2'

AppComponent3 -> 'defaultTemplate3'


когда мы устанавливаем 'env 'constant as' env_1 'я хочу использовать следующие шаблоны:

AppComponent1 -> 'env_1Template1'

AppComponent2 -> 'env_1Template2'

AppComponent3 -> 'defaultTemplate3'


для' env ', поскольку' env_2 'необходимо использовать:

AppComponent1 -> 'env_2Template1'

AppComponent2 -> 'defaultTemplate2'

AppComponent3 -> 'env_2Template3'

1 Ответ

0 голосов
/ 19 июня 2020

Из-за отсутствия подробностей о вашей текущей реализации вы можете попробовать сделать что-нибудь следующим образом:

Конфигурация среды (constants.ts)

export const ENVIRONMENT: string = 'env_1';

Случайный компонент (child.component .ts)

import { Component, OnInit } from '@angular/core';

import * as CONFIG from '../constant';

@Component({
  selector: 'app-child',
  templateUrl: CONFIG.ENVIRONMENT === 'env_1' ? './child.html' : './child2.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {
  ...
}

Я использовал базовую c тернарную операцию, чтобы выбрать URL-адрес шаблона. Вы можете сделать это так же сложно, как sh, чтобы определить URL. Вы также можете отправить URL-путь непосредственно из файла конфигурации среды.

...