У меня есть основной компонент, который представляет собой матрицу, полную информации.Выбор может быть сделан по элементам заголовка, а также по левым строкам (элементы первого столбца).Когда выбор сделан, правая и левая боковые панели имеют разные опции и статистику, с которой можно работать.
class ParentComponent { }
class SelectedCategoryComponent { }
class SelectedRoleComponent { }
class OtherComponent { }
Учитывая, что боковые панели используют связанные данные с выборами, что было бы лучшим способом поделиться информацией?
Одним из способов будет использование именованных выходов маршрутизатора для боковых панелей.Это будет означать, что любые запросы будут выполняться при загрузке компонента, и фактически повторное использование макета может усложниться без использования именованных выходов маршрутизатора в этом сценарии.Это позволит вернуться к предыдущим состояниям и может немного облегчить управление модульным тестированием с меньшим количеством зависимостей данных.Недостатком кажется, что маршрутизация будет более сложной.
class ParentComponent { }
// id is passed to the components via named router-outlets
class SelectedCategoryComponent { }
class SelectedRoleComponent { }
class OtherComponent { }
Теперь, если я выберу путь использования отношений родитель-компонент / дочерний компонент, я думаю, что это может быть сложнее проверить, поскольку существуют зависимости данных.Обратное и обратное общение может быть немного сложнее в реализации, так как компоновка должна быть жестко запрограммирована в родительском представлении.
// All hosted on the same page
class ParentComponent { }
class SelectedCategoryComponent { }
class SelectedRoleComponent { }
class OtherComponent { }
@Injectable({...})
class SharedDataService
{
sharedState: T;
}
Каков наилучший способ подключения этих компонентов, так как пользовательский интерфейс усложняется, чтобы обеспечить максимально возможный опыт модульного тестирования?