|
2 | 2 | // #docregion full
|
3 | 3 | import 'package:angular2/core.dart';
|
4 | 4 |
|
5 |
| -@Directive(selector: '[my-highlight]', host: const { |
| 5 | +@Directive(selector: '[myHighlight]', host: const { |
6 | 6 | '(mouseenter)': 'onMouseEnter()',
|
7 | 7 | '(mouseleave)': 'onMouseLeave()'
|
8 | 8 | })
|
9 | 9 | // #docregion class-1
|
10 |
| -class Highlight { |
11 |
| - // #enddocregion class-1 |
12 |
| -// #enddocregion full |
13 |
| - /* |
14 |
| -// #docregion highlight |
15 |
| - @Input() myHighlight: string; |
16 |
| -// #enddocregion highlight |
17 |
| - */ |
18 |
| -// #docregion full |
19 |
| -// #docregion class-1 |
20 |
| -// #docregion color |
21 |
| - @Input('my-highlight') String highlightColor; |
22 |
| -// #enddocregion color |
23 |
| - |
| 10 | +class HighlightDirective { |
24 | 11 | String _defaultColor = 'red';
|
| 12 | + final dynamic _el; |
| 13 | + |
| 14 | + HighlightDirective(ElementRef elRef) : _el = elRef.nativeElement; |
25 | 15 | // #enddocregion class-1
|
| 16 | + |
26 | 17 | // #docregion defaultColor
|
27 | 18 | @Input() set defaultColor(String colorName) {
|
28 | 19 | _defaultColor = (colorName ?? _defaultColor);
|
29 | 20 | }
|
30 | 21 | // #enddocregion defaultColor
|
31 |
| -// #docregion class-1 |
32 |
| - |
33 |
| - final ElementRef _element; |
34 |
| - |
35 |
| -// #docregion mouse-enter |
36 |
| - onMouseEnter() { |
37 |
| - _highlight(highlightColor ?? _defaultColor); |
38 |
| - } |
| 22 | + // #docregion class-1 |
39 | 23 |
|
40 |
| -// #enddocregion mouse-enter |
41 |
| - onMouseLeave() { |
42 |
| - _highlight(null); |
43 |
| - } |
| 24 | + // #docregion color |
| 25 | + @Input('myHighlight') String highlightColor; |
| 26 | + // #enddocregion color |
| 27 | + |
| 28 | + // #docregion mouse-enter |
| 29 | + void onMouseEnter() { _highlight(highlightColor ?? _defaultColor); } |
| 30 | + // #enddocregion mouse-enter |
| 31 | + void onMouseLeave() { _highlight(); } |
44 | 32 |
|
45 |
| - void _highlight(String color) { |
46 |
| - _element.nativeElement.style.backgroundColor = color; |
| 33 | + void _highlight([String color]) { |
| 34 | + if(_el != null) _el.style.backgroundColor = color; |
47 | 35 | }
|
48 |
| - |
49 |
| - Highlight(this._element); |
50 | 36 | }
|
51 | 37 | // #enddocregion class-1
|
52 | 38 | // #enddocregion full
|
| 39 | +/* |
| 40 | +// #docregion highlight |
| 41 | +@Input() String myHighlight; |
| 42 | +// #enddocregion highlight |
| 43 | +*/ |
0 commit comments