Показывать div в шаблоне в зависимости от типа входного параметра

Моя ситуация выглядит так: у меня есть иерархия классов:

enter image description here

В приложении Angular у меня есть компонент, в который входит процесс:

    @Input() currentProcess: Process 

В зависимости от конкретного типа этого процесса (ProjectProcess или EmployeeProcess) я хочу показать другой div в шаблоне. Конечно, я могу это сделать, проверив переменную с помощью instanceof, установив логическую переменную и проверив ее с помощью * ngIf в шаблоне, но мне это не нравится. Это действительно единственный способ или есть лучшие решения?

Спасибо за старания!

0
0
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Сделайте это чистым, используйте геттеры:

get isProjectProcess() { return this.currentProcess instanceof ProjectProcess; }
get isEmployeeProcess() { return this.currentProcess instanceof EmployeeProcess; }

Преимущество этого решения заключается в том, что ваши логические значения будут меняться на каждом жизненном цикле, что избавляет вас от необходимости внедрять onChanges.

Согласен на 100%. Используйте функции Angular LifeCycle, чтобы справиться с этим и выполнить логику в контроллере компонентов. Это делает его более тестируемым и надежным. И делает шаблон более читабельным. Множество ... таблиц

Dylan Wright 10.08.2018 14:57

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