mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-22 13:32:54 +08:00
refactor(structure): allow content to scroll under headers/footers
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
import {ViewContainerRef, ComponentResolver, ComponentRef, provide, ReflectiveInjector, ResolvedReflectiveProvider, ElementRef, NgZone, Renderer, EventEmitter} from '@angular/core';
|
||||
import {ViewContainerRef, ComponentResolver, ComponentFactory, ComponentRef, provide, ReflectiveInjector, ResolvedReflectiveProvider, ElementRef, NgZone, Renderer, EventEmitter} from '@angular/core';
|
||||
|
||||
import {addSelector} from '../../config/bootstrap';
|
||||
import {App} from '../app/app';
|
||||
@ -1059,7 +1059,7 @@ export class NavController extends Ion {
|
||||
// DOM WRITE
|
||||
this.setTransitioning(true, 500);
|
||||
|
||||
this.loadPage(enteringView, null, opts, () => {
|
||||
this.loadPage(enteringView, this._viewport, opts, () => {
|
||||
enteringView.fireLoaded();
|
||||
this.viewDidLoad.emit(enteringView);
|
||||
this._postRender(transId, enteringView, leavingView, isAlreadyTransitioning, opts, done);
|
||||
@ -1467,8 +1467,8 @@ export class NavController extends Ion {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
loadPage(view: ViewController, navbarContainerRef: ViewContainerRef, opts: NavOptions, done: Function) {
|
||||
if (!this._viewport || !view.componentType) {
|
||||
loadPage(view: ViewController, viewport: ViewContainerRef, opts: NavOptions, done: Function) {
|
||||
if (!viewport || !view.componentType) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1489,7 +1489,7 @@ export class NavController extends Ion {
|
||||
|
||||
let componentRef = componentFactory.create(childInjector, null, null);
|
||||
|
||||
this._viewport.insert(componentRef.hostView, this._viewport.length);
|
||||
viewport.insert(componentRef.hostView, viewport.length);
|
||||
|
||||
// a new ComponentRef has been created
|
||||
// set the ComponentRef's instance to its ViewController
|
||||
@ -1518,30 +1518,6 @@ export class NavController extends Ion {
|
||||
componentRef.destroy();
|
||||
});
|
||||
|
||||
if (!navbarContainerRef) {
|
||||
// there was not a navbar container ref already provided
|
||||
// so use the location of the actual navbar template
|
||||
navbarContainerRef = view.getNavbarViewRef();
|
||||
}
|
||||
|
||||
// find a navbar template if one is in the page
|
||||
let navbarTemplateRef = view.getNavbarTemplateRef();
|
||||
|
||||
// check if we have both a navbar ViewContainerRef and a template
|
||||
if (navbarContainerRef && navbarTemplateRef) {
|
||||
// let's now create the navbar view
|
||||
let navbarViewRef = navbarContainerRef.createEmbeddedView(navbarTemplateRef);
|
||||
|
||||
view.onDestroy(() => {
|
||||
// manually destroy the navbar when the page is destroyed
|
||||
navbarViewRef.destroy();
|
||||
});
|
||||
}
|
||||
|
||||
// options may have had a postLoad method
|
||||
// used mainly by tabs
|
||||
opts.postLoad && opts.postLoad(view);
|
||||
|
||||
// our job is done here
|
||||
done(view);
|
||||
});
|
||||
@ -1852,7 +1828,6 @@ export interface NavOptions {
|
||||
keyboardClose?: boolean;
|
||||
preload?: boolean;
|
||||
transitionDelay?: number;
|
||||
postLoad?: Function;
|
||||
progressAnimation?: boolean;
|
||||
climbNav?: boolean;
|
||||
ev?: any;
|
||||
|
Reference in New Issue
Block a user