mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-11-08 15:51:16 +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",
|
||||
"version": "0.0.2-27",
|
||||
"version": "0.0.2-28",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ionic/core",
|
||||
"version": "0.0.2-27",
|
||||
"version": "0.0.2-28",
|
||||
"description": "Base components for Ionic",
|
||||
"main": "dist/collection/index.js",
|
||||
"types": "dist/collection/index.d.ts",
|
||||
|
||||
@ -2,10 +2,12 @@ import { FrameworkDelegate, FrameworkMountingData, } from '../../index';
|
||||
import { isString } from '../../utils/helpers';
|
||||
|
||||
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) => {
|
||||
const usersElement = (isString(tagOrElement) ? document.createElement(tagOrElement) : tagOrElement) as HTMLElement;
|
||||
|
||||
Object.assign(usersElement, propsOrDataObj);
|
||||
if (classesToAdd.length) {
|
||||
for (const clazz of classesToAdd) {
|
||||
usersElement.classList.add(clazz);
|
||||
|
||||
@ -446,7 +446,7 @@ export function fireViewWillLifecycles(enteringView: ViewController, leavingView
|
||||
|
||||
export function attachViewToDom(nav: Nav, enteringView: ViewController, delegate: FrameworkDelegate) {
|
||||
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);
|
||||
enteringView.state = STATE_ATTACHED;
|
||||
});
|
||||
|
||||
@ -7,7 +7,7 @@ import {
|
||||
|
||||
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>;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user