4 Angular-自定义指令


1 代码结构

 2 myc04.component.html

 1 <p>myc04 works!p>
 2 
 3 
 4 <div>
 5     <input type="text">
 6 div>
 7 <div>
 8     
 9     
10     
11     <input type="text" appFocus value="123">
12 div>
13 <div>
14     <input type="text" value="hello" appUpper>
15 div>
myc04.component.html

3 focus.directive.ts

 1 import { Directive, ElementRef } from '@angular/core';
 2 
 3 @Directive({
 4   selector: '[appFocus]'
 5 })
 6 export class FocusDirective {
 7 
 8   constructor(e: ElementRef) {
 9     //重启命令行,生成新的指令必须重启服务器才能生效
10     console.log(e)
11 
12     let input = e.nativeElement;//此处,指令绑定在input标签上,所以是input标签    
13     //DOM的原生方法,input的focus方法可以获取焦点
14     input.focus();
15   }
16 
17 }
focus.directive.ts

4 upper.directive.ts

 1 import { Directive, ElementRef } from '@angular/core';
 2 
 3 @Directive({
 4   selector: '[appUpper]'
 5 })
 6 export class UpperDirective {
 7 
 8   constructor(e: ElementRef) {
 9     e.nativeElement.value = e.nativeElement.value.toUpperCase();
10   }
11 
12 }
upper.directive.ts

5 效果图