Как объявить и импортировать переменную в компонент в веб-пакете angular 2?

#angular #webpack

#angular #веб-пакет

Вопрос:

Я пытаюсь объявить переменную в какой-нибудь *.ts файл и импортировать файл в .ts файл компонента для использования.

url.ts :

 var loginComponentTemplateUrl: string;
if (true) {
    loginComponentTemplateUrl = './login.component.html';
} else {
    loginComponentTemplateUrl = './app/login/login.component.html';
}
  

login.component.ts :

 import './url';
@Component({
    templateUrl: loginComponentTemplateUrl
})
...
  

SystemJS Все работает, но когда я пытаюсь использовать Webpack сборку, выдается ошибка: loginComponentTemplateUrl variable not defined .
Мне нужно импортировать этот url.ts файл в polyfills.ts or vendor.ts , но как? насколько я понимаю, vendor.ts/polyfills.ts файлы работают только с modules .

Комментарии:

1. поделитесь своим webpack.config

Ответ №1:

Вы должны export получить loginComponentTemplateUrl переменную из url.ts и import ее в login.component.ts

что-то вроде этого в url.ts

 let loginComponentTemplateUrl: string;
if (true) { //will throw linting error
   loginComponentTemplateUrl = './login.component.html';
} else {
    loginComponentTemplateUrl = './app/login/login.component.html';
}

export default loginComponentTemplateUrl
  

И, в login.component.ts

 import loginComponentTemplateUrl from './url'
@Component({
     templateUrl: loginComponentTemplateUrl
})
...
  

Комментарии:

1. могу ли я каким-то образом в одном файле создать multiple: export default?

2. Вы можете выполнить несколько экспортов, но по умолчанию должен быть только один. Кстати, этот ответ помог? тогда примите этот ответ

3. нет. все еще не работает над сборкой Webpack. Браузер показывает значение переменной, но tmplate не загружается.