Skip to content

Instantly share code, notes, and snippets.

@romanoffs
Forked from kulshekhar/CanActivate.dart
Created July 14, 2018 20:09
Show Gist options
  • Save romanoffs/edf83f395a7246fb1603f5d89fbbb71a to your computer and use it in GitHub Desktop.
Save romanoffs/edf83f395a7246fb1603f5d89fbbb71a to your computer and use it in GitHub Desktop.
AngularDart sample using CanActivate
import 'dart:html';
import 'package:angular2/core.dart';
import 'package:angular2/router.dart';
@Component(
selector: 'my-app',
styleUrls: const ['app_component.css'],
template: '''
<h1>My First Angular 2 App</h1>
<div>
<a [routerLink]="['Home']">home</a> -
<a [routerLink]="['General']">general area</a> -
<a [routerLink]="['Secret']">secret area</a>
</div>
<router-outlet></router-outlet>
''',
directives: const [ROUTER_DIRECTIVES],
providers: const [ROUTER_PROVIDERS],
)
@RouteConfig(const [
const Route(
path: '/', name: 'Home', component: HomeComponent, useAsDefault: true),
const Route(path: '/secret', name: 'Secret', component: SecretComponent),
const Route(path: '/general', name: 'General', component: GeneralComponent),
])
class AppComponent {}
@Component(
selector: 'secret-area',
template: '<div>Welcome to the secret area</div>',
)
@CanActivate(secretValidator)
class SecretComponent {}
secretValidator(ComponentInstruction next, ComponentInstruction prev) {
if (prev.routeName == 'General') return true;
window.alert('Unauthorized');
}
@Component(
selector: 'general-area',
template: '<div>Welcome to the general area</div>',
)
class GeneralComponent {}
@Component(
selector: 'm-home',
template: '<div>Welcome</div>',
)
class HomeComponent {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment