52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /**
 | |
|  * @license
 | |
|  * Copyright Google Inc. All Rights Reserved.
 | |
|  *
 | |
|  * Use of this source code is governed by an MIT-style license that can be
 | |
|  * found in the LICENSE file at https://angular.io/license
 | |
|  */
 | |
| 
 | |
| import {Attribute, Component, Directive, Pipe} from '@angular/core';
 | |
| 
 | |
| class CustomDirective {}
 | |
| 
 | |
| // #docregion component
 | |
| @Component({selector: 'greet', template: 'Hello {{name}}!'})
 | |
| class Greet {
 | |
|   name: string = 'World';
 | |
| }
 | |
| // #enddocregion
 | |
| 
 | |
| // #docregion attributeFactory
 | |
| @Component({selector: 'page', template: 'Title: {{title}}'})
 | |
| class Page {
 | |
|   title: string;
 | |
|   constructor(@Attribute('title') title: string) { this.title = title; }
 | |
| }
 | |
| // #enddocregion
 | |
| 
 | |
| // #docregion attributeMetadata
 | |
| @Directive({selector: 'input'})
 | |
| class InputAttrDirective {
 | |
|   constructor(@Attribute('type') type: string) {
 | |
|     // type would be 'text' in this example
 | |
|   }
 | |
| }
 | |
| // #enddocregion
 | |
| 
 | |
| // #docregion directive
 | |
| @Directive({selector: 'input'})
 | |
| class InputDirective {
 | |
|   constructor() {
 | |
|     // Add some logic.
 | |
|   }
 | |
| }
 | |
| // #enddocregion
 | |
| 
 | |
| // #docregion pipe
 | |
| @Pipe({name: 'lowercase'})
 | |
| class Lowercase {
 | |
|   transform(v: string, args: any[]) { return v.toLowerCase(); }
 | |
| }
 | |
| // #enddocregion
 |