Как сохранить один и тот же код для разных клиентов с небольшим количеством изменений CSS или компонентов? - PullRequest
0 голосов
/ 08 января 2019

У меня один и тот же код Angular 6 для 2 или более клиентов, но пока я перемещаю сборку, мне приходится вручную комментировать несколько вещей для конкретного клиента. Например, допустим, у меня есть клиент X и Y, для клиента X у меня другой Style.Scss, а для клиента Y - другой. Мы поддерживаем код, используя tortoiseSVN. Как я могу убедиться, что изменение файлов происходит автоматически при создании кода? Передняя часть угловая 6, задняя часть Java.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вы должны использовать разные классы для разных клиентов по элементу тела, чтобы вы могли стилизовать детей в соответствии с клиентом X или клиентом Y.

Например, при инициализации приложения добавьте класс 'clientx' в тело, а затем напишите правила css относительно clientx как родителя.

Когда вы создаете приложение для clientX, добавьте класс clientx в тело, и соответствующие дочерние элементы могут быть стилизованы

body.clientx .elementA{
     color:red
}

Аналогично, когда вы создаете приложение для clientY, добавьте class clienty в body, и соответствующие дочерние элементы могут быть стилизованы

body.clienty .elementA{
     color:yellow
}

Таким образом, вам не нужно прикасаться к угловой логике, а сам css может удовлетворить ваши требования. Для более надежной реализации вы можете использовать scss.

0 голосов
/ 08 января 2019

Вы можете применить класс CSS на основе флага.

let flag = 'x'; // E.x now x client is active. 

В HTML

// For css stuff
<div [ngClass]="x ? 'xClass' ? 'yClass'">
</div>

// For show content 
<div *ngIf="flag == 'x'">
    // Show data of x user 
</div>

<div *ngIf="flag == 'y'">
    // Show data of y user 
</div>

С этим вы должны справиться и с бэкэндом, также отправив флаг.

Обновление

Когда дело касается всего компонента, я предлагаю вам использовать diffrent auth guard. Это лучшая вещь для такого типа ситуации.

...