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
 |