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 * @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()');
} }

View File

@ -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) {

View File

@ -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()) {

View File

@ -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);

View File

@ -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

View File

@ -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);