#angular #angular-dynamic-components
Вопрос:
Я прочитал руководство по динамической загрузке компонентов, однако я не совсем уверен, что оно точно решает то, что я хотел бы.
Скажем, у меня есть концепция разных «брендов», и на основе переменной «бренд» я хотел бы загрузить другой пользовательский интерфейс для ряда компонентов. Теперь, основываясь на приведенной выше ссылке, я мог бы создать компонент, специфичный для каждого бренда, а затем иметь что-то, что делает:
if (brand == A) {
return Component1BrandA
} else if(brand == B) {
return Component1BrandB
}
...
Проблема с этим заключается в том, что это было бы очень многословно, и я хочу сохранить любой конкретный «бренд», если / else упоминается в коде. Это делается для того, чтобы по мере добавления новых «брендов» я мог просто добавлять шаблоны / компоненты где-нибудь на основе каталога «бренда» или чего-то еще, и они просто автоматически подбираются.
например, я бы предпочел что-то вроде:
return "Component1Brand${brand}"
Какие у меня здесь варианты? Можно ли динамически задавать имя компонента для получения с помощью переменной?
Или, если невозможно избежать «фирменного» материала, специфичного для if / else, было бы лучше добавить разные разделы в существующие шаблоны компонентов и просто показывать и скрывать их на основе «бренда»?
<div *ngIf="isBrandA"></div>
<div *ngIf="isBrandB"></div>
Комментарии:
1. Когда вы говорите — на основе переменной ‘brand’, хотели бы загрузить другой пользовательский интерфейс для нескольких компонентов — означает ли это, что весь пользовательский интерфейс отличается или некоторые части можно использовать повторно? О скольких брендах мы говорим 100-1000 или более?
2. Сохраняйте информацию о barnd в файле конфигурации и загружайте компоненты, зависящие от бренда, при загрузке, проверяя этот файл конфигурации
3. @ApoorvaChikara: На данный момент это всего лишь несколько брендов, но выполнение какого-либо блока if / else для этой цели нежелательно. На данный момент пользовательский интерфейс будет похож, но нет причин, по которым они не могли бы быть совершенно разными, поэтому он должен быть гибким.
4. @Vega Предполагая, что я сохраняю файл конфигурации, что именно я в нем сохраняю? Не могли бы вы привести пример того, как это решает проблему?