Attaching behavior to DOM elements with directives
In the course of creating applications, you will often find it useful to be able to attach component-style behavior to DOM elements, but without the need to have templating. If you were to attempt to construct an Angular 2 component without providing a template in some way, you will meet with a stern error telling you that some form of template is required.
Here lies the difference between Angular 2 components and directives: components have views (which can take the form of a template, templateUrl, or @View decorator), whereas directives do not. They otherwise behave identically and provide you with the same behavior.
Note
The code, links, and a live example of this are available at http://ngcookbook.herokuapp.com/3292/.
Getting ready
Suppose you have the following application:
[app/article.component.ts]
import {Component} from '@angular/core';
@Component({
selector: 'article',
template: `<h1>{...