refactor(angular): update angular specific nav stuff to only use interfaces from @ionic/core

This commit is contained in:
Dan Bucholtz
2017-11-22 15:41:53 -06:00
parent 2e2c9008af
commit b634ffcff3
2 changed files with 14 additions and 12 deletions

View File

@ -14,8 +14,10 @@ import {
ViewChild ViewChild
} from '@angular/core'; } from '@angular/core';
import { NavController, ViewController } from '@ionic/core'; import { PublicNav, PublicViewController } from '@ionic/core';
import { App } from '../providers/app'; import { App } from '../providers/app';
import { NavController as InjectableNavController } from '../providers/nav-controller'; import { NavController as InjectableNavController } from '../providers/nav-controller';
@Component({ @Component({
@ -36,7 +38,7 @@ export class IonNavDelegate {
controllerElement.delegate = this; controllerElement.delegate = this;
} }
attachViewToDom(nav: NavController, enteringView: ViewController): Promise<any> { attachViewToDom(nav: PublicNav, enteringView: PublicViewController): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.zone.run(() => { this.zone.run(() => {
@ -45,7 +47,7 @@ export class IonNavDelegate {
provide: NavControllerToken, useValue: nav.element, provide: NavControllerToken, useValue: nav.element,
}, },
{ {
provide: NavController, useFactory: provideNavControllerInjectable, deps: [NavControllerToken] provide: InjectableNavController, useFactory: provideNavControllerInjectable, deps: [NavControllerToken]
}, },
{ {
@ -75,7 +77,7 @@ export class IonNavDelegate {
}); });
} }
removeViewFromDom(nav: NavController, viewController: ViewController) { removeViewFromDom(nav: PublicNav, viewController: PublicViewController) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.zone.run(() => { this.zone.run(() => {

View File

@ -1,8 +1,8 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { NavOptions, PublicNavController, ViewController } from '@ionic/core'; import { NavOptions, PublicNav, PublicViewController } from '@ionic/core';
import { hydrateElement } from '../util/util'; import { hydrateElement } from '../util/util';
export class NavController implements PublicNavController { export class NavController implements PublicNav {
constructor(public element: HTMLIonNavElement) { constructor(public element: HTMLIonNavElement) {
} }
@ -54,7 +54,7 @@ export class NavController implements PublicNavController {
}); });
} }
removeView(viewController: ViewController, opts?: NavOptions): Promise<any> { removeView(viewController: PublicViewController, opts?: NavOptions): Promise<any> {
return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => { return hydrateElement(this.element).then((navElement: HTMLIonNavElement) => {
return navElement.removeView(viewController, opts); return navElement.removeView(viewController, opts);
}); });
@ -66,23 +66,23 @@ export class NavController implements PublicNavController {
}); });
} }
getActive(): ViewController { getActive(): PublicViewController {
if (this.element.getActive) { if (this.element.getActive) {
return this.element.getActive(); return this.element.getActive();
} }
return null; return null;
} }
getPrevious(view?: ViewController): ViewController { getPrevious(view?: PublicViewController): PublicViewController {
if (this.element.getPrevious) { if (this.element.getPrevious) {
return this.element.getPrevious(view); return this.element.getPrevious(view);
} }
return null; return null;
} }
canGoBack(nav: PublicNavController): boolean { canGoBack(): boolean {
if (this.element.canGoBack) { if (this.element.canGoBack) {
return this.element.canGoBack(nav as any); return this.element.canGoBack();
} }
return false; return false;
} }
@ -94,7 +94,7 @@ export class NavController implements PublicNavController {
return false; return false;
} }
getFirstView(): ViewController { getFirstView(): PublicViewController {
if (this.element.getFirstView) { if (this.element.getFirstView) {
return this.element.getFirstView(); return this.element.getFirstView();
} }