mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 23:58:13 +08:00
refactor(navigation): update framework delegate
This commit is contained in:
2
packages/core/package-lock.json
generated
2
packages/core/package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "0.0.2-27",
|
"version": "0.0.2-28",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@ionic/core",
|
"name": "@ionic/core",
|
||||||
"version": "0.0.2-27",
|
"version": "0.0.2-28",
|
||||||
"description": "Base components for Ionic",
|
"description": "Base components for Ionic",
|
||||||
"main": "dist/collection/index.js",
|
"main": "dist/collection/index.js",
|
||||||
"types": "dist/collection/index.d.ts",
|
"types": "dist/collection/index.d.ts",
|
||||||
|
|||||||
@ -2,10 +2,12 @@ import { FrameworkDelegate, FrameworkMountingData, } from '../../index';
|
|||||||
import { isString } from '../../utils/helpers';
|
import { isString } from '../../utils/helpers';
|
||||||
|
|
||||||
export class DomFrameworkDelegate implements FrameworkDelegate {
|
export class DomFrameworkDelegate implements FrameworkDelegate {
|
||||||
attachViewToDom(parentElement: HTMLElement, tagOrElement: string | HTMLElement, classesToAdd: string[] = []): Promise<FrameworkMountingData> {
|
attachViewToDom(parentElement: HTMLElement, tagOrElement: string | HTMLElement, propsOrDataObj: any = {}, classesToAdd: string[] = []): Promise<FrameworkMountingData> {
|
||||||
|
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
const usersElement = (isString(tagOrElement) ? document.createElement(tagOrElement) : tagOrElement) as HTMLElement;
|
const usersElement = (isString(tagOrElement) ? document.createElement(tagOrElement) : tagOrElement) as HTMLElement;
|
||||||
|
|
||||||
|
Object.assign(usersElement, propsOrDataObj);
|
||||||
if (classesToAdd.length) {
|
if (classesToAdd.length) {
|
||||||
for (const clazz of classesToAdd) {
|
for (const clazz of classesToAdd) {
|
||||||
usersElement.classList.add(clazz);
|
usersElement.classList.add(clazz);
|
||||||
|
|||||||
@ -446,7 +446,7 @@ export function fireViewWillLifecycles(enteringView: ViewController, leavingView
|
|||||||
|
|
||||||
export function attachViewToDom(nav: Nav, enteringView: ViewController, delegate: FrameworkDelegate) {
|
export function attachViewToDom(nav: Nav, enteringView: ViewController, delegate: FrameworkDelegate) {
|
||||||
if (enteringView && enteringView.state === STATE_NEW) {
|
if (enteringView && enteringView.state === STATE_NEW) {
|
||||||
return delegate.attachViewToDom(nav.element, enteringView.component, ['ion-page']).then((mountingData) => {
|
return delegate.attachViewToDom(nav.element, enteringView.component, enteringView.data, ['ion-page']).then((mountingData) => {
|
||||||
Object.assign(enteringView, mountingData);
|
Object.assign(enteringView, mountingData);
|
||||||
enteringView.state = STATE_ATTACHED;
|
enteringView.state = STATE_ATTACHED;
|
||||||
});
|
});
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import {
|
|||||||
|
|
||||||
export interface FrameworkDelegate {
|
export interface FrameworkDelegate {
|
||||||
|
|
||||||
attachViewToDom(elementOrContainerToMountTo: any, elementOrComponentToMount: any, classesToAdd?: string[]): Promise<FrameworkMountingData>;
|
attachViewToDom(elementOrContainerToMountTo: any, elementOrComponentToMount: any, propsOrDataObj?: any, classesToAdd?: string[]): Promise<FrameworkMountingData>;
|
||||||
removeViewFromDom(elementOrContainerToUnmountFrom: any, elementOrComponentToUnmount: any): Promise<FrameworkMountingData>;
|
removeViewFromDom(elementOrContainerToUnmountFrom: any, elementOrComponentToUnmount: any): Promise<FrameworkMountingData>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user