fix(nav): fix menuCtrl reference in swipe back

This commit is contained in:
Adam Bradley
2016-06-29 21:12:22 -05:00
parent 76619cf4d0
commit 55a5e83020
6 changed files with 18 additions and 12 deletions

View File

@ -249,7 +249,7 @@ export class App {
/**
* @private
*/
getComponent(id: string): any {
private getComponent(id: string): any {
// deprecated warning: added 2016-04-28, beta7
console.warn('Using app.getComponent() to query components has been deprecated. ' +
'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
* @returns {Injector}
*/
getAppInjector(): any {
private getAppInjector(): any {
// deprecated warning: added 2016-06-27, beta10
console.warn('Recent Angular2 versions should no longer require App.getAppInjector()');
}

View File

@ -446,7 +446,7 @@ describe('App', () => {
var _cd: any;
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 {
@ -454,7 +454,7 @@ describe('App', () => {
}
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);
tab.root = SomePage;
tab.load = function(opts: any, cb: Function) {

View File

@ -217,7 +217,8 @@ export class NavController extends Ion {
elementRef: ElementRef,
protected _zone: NgZone,
protected _renderer: Renderer,
protected _compiler: ComponentResolver
protected _compiler: ComponentResolver,
protected _menuCtrl: MenuController
) {
super(elementRef);
@ -1532,8 +1533,7 @@ export class NavController extends Ion {
edge: 'left',
threshold: this._sbThreshold
};
let menuCtrl = this._app.getAppInjector().get(MenuController);
this._sbGesture = new SwipeBackGesture(this.getNativeElement(), opts, this, menuCtrl);
this._sbGesture = new SwipeBackGesture(this.getNativeElement(), opts, this, this._menuCtrl);
}
if (this.canSwipeBack()) {

View File

@ -3,6 +3,7 @@ import { ComponentResolver, Directive, ElementRef, forwardRef, Inject, NgZone, O
import { App } from '../app/app';
import { Config } from '../../config/config';
import { Keyboard } from '../../util/keyboard';
import { MenuController } from '../menu/menu-controller';
import { NavController } from '../nav/nav-controller';
/**
@ -20,9 +21,10 @@ export class NavPortal extends NavController {
zone: NgZone,
renderer: Renderer,
compiler: ComponentResolver,
menuCtrl: MenuController,
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.setViewport(viewPort);
app.setPortal(this);

View File

@ -4,6 +4,7 @@ import { App } from '../app/app';
import { Config } from '../../config/config';
import { Keyboard } from '../../util/keyboard';
import { isTrueProperty } from '../../util/util';
import { MenuController } from '../menu/menu-controller';
import { NavController } from './nav-controller';
import { ViewController } from './view-controller';
@ -126,9 +127,10 @@ export class Nav extends NavController implements AfterViewInit {
elementRef: ElementRef,
zone: NgZone,
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) {
// an ion-nav can also act as an ion-page within a parent ion-nav

View File

@ -4,6 +4,7 @@ import { App } from '../app/app';
import { Config } from '../../config/config';
import { isTrueProperty} from '../../util/util';
import { Keyboard} from '../../util/keyboard';
import { MenuController } from '../menu/menu-controller';
import { NavController} from '../nav/nav-controller';
import { NavOptions} from '../nav/nav-options';
import { TabButton} from './tab-button';
@ -227,10 +228,11 @@ export class Tab extends NavController {
zone: NgZone,
renderer: Renderer,
compiler: ComponentResolver,
private _cd: ChangeDetectorRef
private _cd: ChangeDetectorRef,
menuCtrl: MenuController
) {
// 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);