Angular2 ngSwitch with <template> only
<ng-container [ngSwitch]="activeLayout">
<ng-container *ngSwitchCase="'layout1'" [ngTemplateOutlet]="template1"></ng-container>
<ng-container *ngSwitchDefault [ngTemplateOutlet]="defaultTemplate"></ng-container>
</ng-container>
This is my solution when I need to make a switch of different ng-template. I hope it works for you.
Edit: This answer is outdated. See @mrodri's answer for the new syntax
That is now supported since the final release. The following code can be applied to your example :
<div *ngSwitch="thing.name">
<template [ngSwitchCase]="foo">
<div>FOOOOOO</div>
</template>
<template [ngSwitchCase]="bar">
<div>BARRRR</div>
</template>
<template [ngSwitchCase]="cat">
<div>CAT</div>
</template>¯
<template [ngSwitchCase]="dog">
<div>DOG</div>
</template>
</div>
See documentation for more info