Explaining Angular's content projection
Content projection is an important concept when developing user interfaces. It allows us to project pieces of content into different places of the user interface of our application. Web Components solve this problem with the content
element. In AngularJS, it is implemented with the infamous transclusion.
Angular is inspired by modern Web standards, especially Web Components, which led to the adoption of some of the methods of content projection used there. In this section, we'll look at them in the context of Angular using the ng-content
directive.
Basic content projection in Angular
Let's suppose we're building a component called fancy-button
. This component will use the standard HTML button element and add some extra behavior to it. Here is the definition of the fancy-button
component:
@Component({ selector: 'fancy-button', template: '<button>Click me</button>' }) class FancyButton { ... }
Inside of the ...