mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
refactor(angular): update angular specific nav stuff to only use interfaces from @ionic/core
This commit is contained in:
@ -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(() => {
|
||||||
|
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user