mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-21 04:53:58 +08:00
feat(nav): set default stack history on app init
This commit is contained in:
@ -490,8 +490,8 @@ export const deepLinkConfig: DeepLinkConfig = {
|
|||||||
{ component: FirstPage, name: 'first-page' },
|
{ component: FirstPage, name: 'first-page' },
|
||||||
{ component: AnotherPage, name: 'another-page' },
|
{ component: AnotherPage, name: 'another-page' },
|
||||||
{ component: MyCmpTest, name: 'tab1-page1' },
|
{ component: MyCmpTest, name: 'tab1-page1' },
|
||||||
{ component: FullPage, name: 'full-page' },
|
{ component: FullPage, name: 'full-page', defaultHistory: ['first-page', 'another-page'] },
|
||||||
{ component: PrimaryHeaderPage, name: 'primary-header-page' },
|
{ component: PrimaryHeaderPage, name: 'primary-header-page', defaultHistory: ['first-page', 'full-page'] },
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Renderer, TypeDecorator } from '@angular/core';
|
import { Renderer, TypeDecorator } from '@angular/core';
|
||||||
|
|
||||||
import { DeepLinker } from './deep-linker';
|
import { DeepLinker } from './deep-linker';
|
||||||
import { isPresent } from '../util/util';
|
import { isArray, isPresent } from '../util/util';
|
||||||
import { isViewController, ViewController } from './view-controller';
|
import { isViewController, ViewController } from './view-controller';
|
||||||
import { NavControllerBase } from './nav-controller-base';
|
import { NavControllerBase } from './nav-controller-base';
|
||||||
import { Transition } from '../transitions/transition';
|
import { Transition } from '../transitions/transition';
|
||||||
@ -32,15 +32,18 @@ export function convertToView(linker: DeepLinker, nameOrPageOrView: any, params:
|
|||||||
|
|
||||||
export function convertToViews(linker: DeepLinker, pages: any[]): ViewController[] {
|
export function convertToViews(linker: DeepLinker, pages: any[]): ViewController[] {
|
||||||
const views: ViewController[] = [];
|
const views: ViewController[] = [];
|
||||||
if (pages) {
|
if (isArray(pages)) {
|
||||||
for (var i = 0; i < pages.length; i++) {
|
for (var i = 0; i < pages.length; i++) {
|
||||||
var page = pages[i];
|
var page = pages[i];
|
||||||
if (page) {
|
if (page) {
|
||||||
if (isViewController(page)) {
|
if (isViewController(page)) {
|
||||||
views.push(page);
|
views.push(page);
|
||||||
|
|
||||||
} else {
|
} else if (page.page) {
|
||||||
views.push(convertToView(linker, page.page, page.params));
|
views.push(convertToView(linker, page.page, page.params));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
views.push(convertToView(linker, page, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,18 @@ describe('NavUtil', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should convert all string names', () => {
|
it('should convert all string names', () => {
|
||||||
|
let linker = mockDeepLinker({
|
||||||
|
links: [{ component: MockView, name: 'someName' }]
|
||||||
|
});
|
||||||
|
let pages = ['someName', 'someName', 'someName'];
|
||||||
|
let views = convertToViews(linker, pages);
|
||||||
|
expect(views.length).toEqual(3);
|
||||||
|
expect(views[0].component).toEqual(MockView);
|
||||||
|
expect(views[1].component).toEqual(MockView);
|
||||||
|
expect(views[2].component).toEqual(MockView);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should convert all page string names', () => {
|
||||||
let linker = mockDeepLinker({
|
let linker = mockDeepLinker({
|
||||||
links: [{ component: MockView, name: 'someName' }]
|
links: [{ component: MockView, name: 'someName' }]
|
||||||
});
|
});
|
||||||
|
@ -42,7 +42,8 @@ export class UrlSerializer {
|
|||||||
id: configLink.name,
|
id: configLink.name,
|
||||||
name: configLink.name,
|
name: configLink.name,
|
||||||
component: configLink.component,
|
component: configLink.component,
|
||||||
data: null
|
data: null,
|
||||||
|
defaultHistory: configLink.defaultHistory
|
||||||
} : null;
|
} : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,7 +175,8 @@ export const fillMatchedUrlParts = (segments: NavSegment[], urlParts: string[],
|
|||||||
id: matchedUrlParts.join('/'),
|
id: matchedUrlParts.join('/'),
|
||||||
name: configLink.name,
|
name: configLink.name,
|
||||||
component: configLink.component,
|
component: configLink.component,
|
||||||
data: createMatchedData(matchedUrlParts, configLink)
|
data: createMatchedData(matchedUrlParts, configLink),
|
||||||
|
defaultHistory: configLink.defaultHistory
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user