diff --git a/angular/package.json b/angular/package.json index 1db1421309..e18cf43748 100644 --- a/angular/package.json +++ b/angular/package.json @@ -20,7 +20,7 @@ "url": "https://github.com/ionic-team/ionic.git" }, "scripts": { - "build": "npm run clean && npm run ionic-core && npm run compile && npm run clean-generated", + "build": "npm run clean && npm run compile && npm run clean-generated && npm run ionic-core", "build.link": "npm run build && node scripts/link-copy.js", "clean": "node scripts/clean.js", "clean-generated": "node ./scripts/clean-generated.js", diff --git a/angular/src/directives/index.ts b/angular/src/directives/index.ts index af2cdab04a..ec9629a51a 100644 --- a/angular/src/directives/index.ts +++ b/angular/src/directives/index.ts @@ -9,6 +9,7 @@ export { GoBack } from './navigation/go-back'; export { IonBackButton } from './navigation/ion-back-button'; export { NavDelegate } from './navigation/nav-delegate'; export { TabDelegate } from './navigation/tab-delegate'; +export { TabsDelegate } from './navigation/tabs-delegate'; export { IonRouterOutlet } from './navigation/ion-router-outlet'; export { Icon } from './icon'; diff --git a/angular/src/directives/navigation/ion-back-button.ts b/angular/src/directives/navigation/ion-back-button.ts index 79e0b7e4ba..8b44809993 100644 --- a/angular/src/directives/navigation/ion-back-button.ts +++ b/angular/src/directives/navigation/ion-back-button.ts @@ -12,7 +12,7 @@ export class IonBackButton { @HostListener('click') onClick() { - if (this.routerOutlet.canGoBack()) { + if (this.routerOutlet && this.routerOutlet.canGoBack()) { this.routerOutlet.pop(); } } diff --git a/angular/src/directives/navigation/tab-delegate.ts b/angular/src/directives/navigation/tab-delegate.ts index 9995400b2c..aaf1e7c352 100644 --- a/angular/src/directives/navigation/tab-delegate.ts +++ b/angular/src/directives/navigation/tab-delegate.ts @@ -1,5 +1,4 @@ -import { ComponentFactoryResolver, Directive, ElementRef, HostListener, Injector, Optional } from '@angular/core'; -import { Router } from '@angular/router'; +import { ComponentFactoryResolver, Directive, ElementRef, Injector } from '@angular/core'; import { AngularDelegate } from '../../providers/angular-delegate'; @@ -9,7 +8,6 @@ import { AngularDelegate } from '../../providers/angular-delegate'; export class TabDelegate { constructor( - @Optional() private router: Router, ref: ElementRef, cfr: ComponentFactoryResolver, injector: Injector, @@ -18,15 +16,5 @@ export class TabDelegate { ref.nativeElement.delegate = angularDelegate.create(cfr, injector); } - @HostListener('ionTabbarClick', ['$event']) - ionTabbarClick(ev: UIEvent) { - const tabElm: HTMLIonTabElement = ev.detail as any; - if (this.router && tabElm && tabElm.href) { - console.log('tabElm', tabElm.href); - - this.router.navigateByUrl(tabElm.href); - } - } - } diff --git a/angular/src/directives/navigation/tabs-delegate.ts b/angular/src/directives/navigation/tabs-delegate.ts new file mode 100644 index 0000000000..27192c166a --- /dev/null +++ b/angular/src/directives/navigation/tabs-delegate.ts @@ -0,0 +1,22 @@ +import { Directive, HostListener, Optional } from '@angular/core'; +import { Router } from '@angular/router'; + +@Directive({ + selector: 'ion-tabs' +}) +export class TabsDelegate { + + constructor( + @Optional() private router: Router, + ) {} + + @HostListener('ionTabbarClick', ['$event']) + ionTabbarClick(ev: UIEvent) { + const tabElm: HTMLIonTabElement = ev.detail as any; + if (this.router && tabElm && tabElm.href) { + this.router.navigateByUrl(tabElm.href); + } + } + +} + diff --git a/angular/src/module.ts b/angular/src/module.ts index c34cb82884..03e252d1a3 100644 --- a/angular/src/module.ts +++ b/angular/src/module.ts @@ -99,6 +99,7 @@ const DECLARATIONS = [ c.IonRouterOutlet, c.NavDelegate, c.TabDelegate, + c.TabsDelegate, // virtual scroll c.VirtualFooter, diff --git a/angular/test/nav/src/app/lazy-load-tabs/tabs.html b/angular/test/nav/src/app/lazy-load-tabs/tabs.html index 1ab16b61eb..6427a3e61c 100644 --- a/angular/test/nav/src/app/lazy-load-tabs/tabs.html +++ b/angular/test/nav/src/app/lazy-load-tabs/tabs.html @@ -2,15 +2,15 @@ - + - + - + diff --git a/angular/test/nav/src/app/simple-tabs/tabs.html b/angular/test/nav/src/app/simple-tabs/tabs.html index 1ab16b61eb..6427a3e61c 100644 --- a/angular/test/nav/src/app/simple-tabs/tabs.html +++ b/angular/test/nav/src/app/simple-tabs/tabs.html @@ -2,15 +2,15 @@ - + - + - +