Так что я думаю, что вы хотите сделать, это разделить и победить эту проблему:
Думайте об интерфейсе как о наборе компонентов. Для изображения выше, у вас может быть следующее.
// Notification Cascacder applies DOM transformations to a list of
<notification-cascader>
// Iterates over a list of notifications
<notification-list>
// Contains primary DOM for a notification
// accepts a variety of arguments for opacity, notification-message, etc.
<notification-card> </notification-card>
</notification-list>
</notification-cascader>
Теперь, когда вы разбили его, вы можете определить, каким может быть API для каждого компонента, написать тесты и затем кодировать компонент. Написание этого таким образом увеличит возможность повторного использования каждого из угловых компонентов. Вы можете использовать одну карточку-уведомление без родителя в некоторых частях приложения. Хотя это не связано с angularjs, вы можете прочитать это и применить концепции
https://reactjs.org/docs/thinking-in-react.html