A useful way of conceptualizing Angular application design is to look at it as a tree of nested components, each having an isolated scope.
For example consider the following:
At the root we have rio-todo-app which consists of a rio-todo-list and a rio-todo-form. Within the list we have several rio-todo-items. Each of these components is visible to the user, who can interact with these components and perform actions.