Defining generic views with TemplateRef
We are already familiar with the concepts of inputs, content children, and view children, and we also know when we can get a reference to them in the component's life cycle. Now, we will combine them and introduce a new concept-TemplateRef
.
Let's take a step back and take a look at the last to-do application we developed earlier in this chapter. In the following screenshot, you can see what its UI looks like:
Figure 11
If we take a look at its implementation in ch4/ts/inputs-outputs/app.ts
, we'll see that the template used to render the individual to-do items is defined inside the template of the entire to-do application.
What if we want to use a different layout to render the to-do items? We can do this by creating another component called Todo
, which encapsulates the responsibility of rendering them. Then, we can define separate Todo
components for the different layouts we want to support. This way, we need to have n different components for n different...