mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 20:33:32 +08:00
fix(nav): fix menuCtrl reference in swipe back
This commit is contained in:
@ -249,7 +249,7 @@ export class App {
|
|||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
getComponent(id: string): any {
|
private getComponent(id: string): any {
|
||||||
// deprecated warning: added 2016-04-28, beta7
|
// deprecated warning: added 2016-04-28, beta7
|
||||||
console.warn('Using app.getComponent() to query components has been deprecated. ' +
|
console.warn('Using app.getComponent() to query components has been deprecated. ' +
|
||||||
'Please use Angular\'s ViewChild annotation instead:\n\nhttp://learnangular2.com/viewChild/');
|
'Please use Angular\'s ViewChild annotation instead:\n\nhttp://learnangular2.com/viewChild/');
|
||||||
@ -259,7 +259,7 @@ export class App {
|
|||||||
* Get an instance of the global app injector that contains references to all of the instantiated providers
|
* Get an instance of the global app injector that contains references to all of the instantiated providers
|
||||||
* @returns {Injector}
|
* @returns {Injector}
|
||||||
*/
|
*/
|
||||||
getAppInjector(): any {
|
private getAppInjector(): any {
|
||||||
// deprecated warning: added 2016-06-27, beta10
|
// deprecated warning: added 2016-06-27, beta10
|
||||||
console.warn('Recent Angular2 versions should no longer require App.getAppInjector()');
|
console.warn('Recent Angular2 versions should no longer require App.getAppInjector()');
|
||||||
}
|
}
|
||||||
|
@ -446,7 +446,7 @@ describe('App', () => {
|
|||||||
var _cd: any;
|
var _cd: any;
|
||||||
|
|
||||||
function mockNav(): Nav {
|
function mockNav(): Nav {
|
||||||
return new Nav(null, null, null, config, null, null, null, null, null);
|
return new Nav(null, null, null, config, null, null, null, null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
function mockTabs(): Tabs {
|
function mockTabs(): Tabs {
|
||||||
@ -454,7 +454,7 @@ describe('App', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function mockTab(parentTabs: Tabs): Tab {
|
function mockTab(parentTabs: Tabs): Tab {
|
||||||
var tab = new Tab(parentTabs, app, config, null, null, null, null, null, _cd);
|
var tab = new Tab(parentTabs, app, config, null, null, null, null, null, _cd, null);
|
||||||
parentTabs.add(tab);
|
parentTabs.add(tab);
|
||||||
tab.root = SomePage;
|
tab.root = SomePage;
|
||||||
tab.load = function(opts: any, cb: Function) {
|
tab.load = function(opts: any, cb: Function) {
|
||||||
|
@ -217,7 +217,8 @@ export class NavController extends Ion {
|
|||||||
elementRef: ElementRef,
|
elementRef: ElementRef,
|
||||||
protected _zone: NgZone,
|
protected _zone: NgZone,
|
||||||
protected _renderer: Renderer,
|
protected _renderer: Renderer,
|
||||||
protected _compiler: ComponentResolver
|
protected _compiler: ComponentResolver,
|
||||||
|
protected _menuCtrl: MenuController
|
||||||
) {
|
) {
|
||||||
super(elementRef);
|
super(elementRef);
|
||||||
|
|
||||||
@ -1532,8 +1533,7 @@ export class NavController extends Ion {
|
|||||||
edge: 'left',
|
edge: 'left',
|
||||||
threshold: this._sbThreshold
|
threshold: this._sbThreshold
|
||||||
};
|
};
|
||||||
let menuCtrl = this._app.getAppInjector().get(MenuController);
|
this._sbGesture = new SwipeBackGesture(this.getNativeElement(), opts, this, this._menuCtrl);
|
||||||
this._sbGesture = new SwipeBackGesture(this.getNativeElement(), opts, this, menuCtrl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.canSwipeBack()) {
|
if (this.canSwipeBack()) {
|
||||||
|
@ -3,6 +3,7 @@ import { ComponentResolver, Directive, ElementRef, forwardRef, Inject, NgZone, O
|
|||||||
import { App } from '../app/app';
|
import { App } from '../app/app';
|
||||||
import { Config } from '../../config/config';
|
import { Config } from '../../config/config';
|
||||||
import { Keyboard } from '../../util/keyboard';
|
import { Keyboard } from '../../util/keyboard';
|
||||||
|
import { MenuController } from '../menu/menu-controller';
|
||||||
import { NavController } from '../nav/nav-controller';
|
import { NavController } from '../nav/nav-controller';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -20,9 +21,10 @@ export class NavPortal extends NavController {
|
|||||||
zone: NgZone,
|
zone: NgZone,
|
||||||
renderer: Renderer,
|
renderer: Renderer,
|
||||||
compiler: ComponentResolver,
|
compiler: ComponentResolver,
|
||||||
|
menuCtrl: MenuController,
|
||||||
viewPort: ViewContainerRef
|
viewPort: ViewContainerRef
|
||||||
) {
|
) {
|
||||||
super(null, app, config, keyboard, elementRef, zone, renderer, compiler);
|
super(null, app, config, keyboard, elementRef, zone, renderer, compiler, menuCtrl);
|
||||||
this.isPortal = true;
|
this.isPortal = true;
|
||||||
this.setViewport(viewPort);
|
this.setViewport(viewPort);
|
||||||
app.setPortal(this);
|
app.setPortal(this);
|
||||||
|
@ -4,6 +4,7 @@ import { App } from '../app/app';
|
|||||||
import { Config } from '../../config/config';
|
import { Config } from '../../config/config';
|
||||||
import { Keyboard } from '../../util/keyboard';
|
import { Keyboard } from '../../util/keyboard';
|
||||||
import { isTrueProperty } from '../../util/util';
|
import { isTrueProperty } from '../../util/util';
|
||||||
|
import { MenuController } from '../menu/menu-controller';
|
||||||
import { NavController } from './nav-controller';
|
import { NavController } from './nav-controller';
|
||||||
import { ViewController } from './view-controller';
|
import { ViewController } from './view-controller';
|
||||||
|
|
||||||
@ -126,9 +127,10 @@ export class Nav extends NavController implements AfterViewInit {
|
|||||||
elementRef: ElementRef,
|
elementRef: ElementRef,
|
||||||
zone: NgZone,
|
zone: NgZone,
|
||||||
renderer: Renderer,
|
renderer: Renderer,
|
||||||
compiler: ComponentResolver
|
compiler: ComponentResolver,
|
||||||
|
menuCtrl: MenuController
|
||||||
) {
|
) {
|
||||||
super(parent, app, config, keyboard, elementRef, zone, renderer, compiler);
|
super(parent, app, config, keyboard, elementRef, zone, renderer, compiler, menuCtrl);
|
||||||
|
|
||||||
if (viewCtrl) {
|
if (viewCtrl) {
|
||||||
// an ion-nav can also act as an ion-page within a parent ion-nav
|
// an ion-nav can also act as an ion-page within a parent ion-nav
|
||||||
|
@ -4,6 +4,7 @@ import { App } from '../app/app';
|
|||||||
import { Config } from '../../config/config';
|
import { Config } from '../../config/config';
|
||||||
import { isTrueProperty} from '../../util/util';
|
import { isTrueProperty} from '../../util/util';
|
||||||
import { Keyboard} from '../../util/keyboard';
|
import { Keyboard} from '../../util/keyboard';
|
||||||
|
import { MenuController } from '../menu/menu-controller';
|
||||||
import { NavController} from '../nav/nav-controller';
|
import { NavController} from '../nav/nav-controller';
|
||||||
import { NavOptions} from '../nav/nav-options';
|
import { NavOptions} from '../nav/nav-options';
|
||||||
import { TabButton} from './tab-button';
|
import { TabButton} from './tab-button';
|
||||||
@ -227,10 +228,11 @@ export class Tab extends NavController {
|
|||||||
zone: NgZone,
|
zone: NgZone,
|
||||||
renderer: Renderer,
|
renderer: Renderer,
|
||||||
compiler: ComponentResolver,
|
compiler: ComponentResolver,
|
||||||
private _cd: ChangeDetectorRef
|
private _cd: ChangeDetectorRef,
|
||||||
|
menuCtrl: MenuController
|
||||||
) {
|
) {
|
||||||
// A Tab is a NavController for its child pages
|
// A Tab is a NavController for its child pages
|
||||||
super(parent, app, config, keyboard, elementRef, zone, renderer, compiler);
|
super(parent, app, config, keyboard, elementRef, zone, renderer, compiler, menuCtrl);
|
||||||
|
|
||||||
parent.add(this);
|
parent.add(this);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user