Вот решение в несколько строк, если вы предпочитаете заполнять свой контент вместо нижнего колонтитула (решение Ахи):
app.component.html:
<div fxLayout="column" fxFlexFill>
<app-header></app-header> // your header
<div fxFlex>
<router-outlet></router-outlet> // your content
</div>
<app-footer></app-footer> // your footer
</div>
styles.css:
html, body {
height: 100%;
box-sizing: border-box;
margin: 0;
}