64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| 
								 | 
							
								// #docplaster
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// #docregion
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// #docregion imports
							 | 
						||
| 
								 | 
							
								import 'package:angular2/core.dart';
							 | 
						||
| 
								 | 
							
								import 'car/car_component.dart';
							 | 
						||
| 
								 | 
							
								import 'heroes/heroes_component.dart';
							 | 
						||
| 
								 | 
							
								import 'app_config.dart';
							 | 
						||
| 
								 | 
							
								import 'logger_service.dart';
							 | 
						||
| 
								 | 
							
								import 'user_service.dart';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// #enddocregion imports
							 | 
						||
| 
								 | 
							
								import 'injector_component.dart';
							 | 
						||
| 
								 | 
							
								import 'providers_component.dart';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@Component(
							 | 
						||
| 
								 | 
							
								    selector: 'my-app',
							 | 
						||
| 
								 | 
							
								    template: '''
							 | 
						||
| 
								 | 
							
								    <h1>{{title}}</h1>
							 | 
						||
| 
								 | 
							
								    <my-car></my-car>
							 | 
						||
| 
								 | 
							
								    <my-injectors></my-injectors>
							 | 
						||
| 
								 | 
							
								    <my-tests></my-tests>
							 | 
						||
| 
								 | 
							
								    <h2>User</h2>
							 | 
						||
| 
								 | 
							
								    <p id="user">
							 | 
						||
| 
								 | 
							
								      {{userInfo}}
							 | 
						||
| 
								 | 
							
								      <button (click)=\'nextUser()\'>Next User</button>
							 | 
						||
| 
								 | 
							
								    <p>
							 | 
						||
| 
								 | 
							
								    <my-heroes id="authorized" *ngIf="isAuthorized"></my-heroes>
							 | 
						||
| 
								 | 
							
								    <my-heroes id="unauthorized" *ngIf="!isAuthorized"></my-heroes>
							 | 
						||
| 
								 | 
							
								  ''',
							 | 
						||
| 
								 | 
							
								    directives: const [CarComponent, HeroesComponent, InjectorComponent, ProvidersComponent],
							 | 
						||
| 
								 | 
							
								// #docregion providers
							 | 
						||
| 
								 | 
							
								    providers: const [Logger, UserService, const Provider(Config, useValue: CONFIG)]
							 | 
						||
| 
								 | 
							
								// #enddocregion providers
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								class AppComponent {
							 | 
						||
| 
								 | 
							
								  UserService _userService;
							 | 
						||
| 
								 | 
							
								  String title;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  //#docregion ctor
							 | 
						||
| 
								 | 
							
								  AppComponent(Config config, this._userService) {
							 | 
						||
| 
								 | 
							
								    title = config.title;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  // #enddocregion ctor
							 | 
						||
| 
								 | 
							
								  bool get isAuthorized {
							 | 
						||
| 
								 | 
							
								    return user.isAuthorized;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  void nextUser() {
							 | 
						||
| 
								 | 
							
								    _userService.getNewUser();
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  User get user {
							 | 
						||
| 
								 | 
							
								    return _userService.user;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  String get userInfo {
							 | 
						||
| 
								 | 
							
								    return 'Current user, ${user.name}, is ${isAuthorized ? "" : "not"} authorized. ';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								// #enddocregion
							 |