mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-22 05:21:52 +08:00
modal updates
This commit is contained in:
@ -38,15 +38,15 @@ import {Animation} from '../../animations/animation';
|
||||
}
|
||||
|
||||
setTitle(title) {
|
||||
this._data.title = title;
|
||||
this.data.title = title;
|
||||
}
|
||||
|
||||
setSubTitle(subTitle) {
|
||||
this._data.subTitle = subTitle;
|
||||
this.data.subTitle = subTitle;
|
||||
}
|
||||
|
||||
addButton(button) {
|
||||
this._data.buttons.push(button);
|
||||
this.data.buttons.push(button);
|
||||
}
|
||||
|
||||
static create(data={}) {
|
||||
|
@ -24,23 +24,23 @@ export class Alert extends ViewController {
|
||||
}
|
||||
|
||||
setTitle(title) {
|
||||
this._data.title = title;
|
||||
this.data.title = title;
|
||||
}
|
||||
|
||||
setSubTitle(subTitle) {
|
||||
this._data.subTitle = subTitle;
|
||||
this.data.subTitle = subTitle;
|
||||
}
|
||||
|
||||
setBody(body) {
|
||||
this._data.body = body;
|
||||
this.data.body = body;
|
||||
}
|
||||
|
||||
addInput(input) {
|
||||
this._data.inputs.push(input);
|
||||
this.data.inputs.push(input);
|
||||
}
|
||||
|
||||
addButton(button) {
|
||||
this._data.buttons.push(button);
|
||||
this.data.buttons.push(button);
|
||||
}
|
||||
|
||||
static create(data={}) {
|
||||
|
@ -32,8 +32,8 @@ class E2EPage {
|
||||
let modal = Modal.create(ModalPassData, { userId: 8675309 });
|
||||
this.nav.present(modal);
|
||||
|
||||
modal.data.subscribe(data => {
|
||||
console.log('data', data);
|
||||
modal.onDismiss(data => {
|
||||
console.log('modal data', data);
|
||||
});
|
||||
}
|
||||
|
||||
@ -45,6 +45,10 @@ class E2EPage {
|
||||
presentToolbarModal() {
|
||||
let modal = Modal.create(ToolbarModal);
|
||||
this.nav.present(modal);
|
||||
|
||||
modal.subscribe(data => {
|
||||
console.log('modal data', data);
|
||||
});
|
||||
}
|
||||
|
||||
presentModalCustomAnimation() {
|
||||
@ -86,8 +90,7 @@ class ModalPassData {
|
||||
}
|
||||
|
||||
submit() {
|
||||
this.viewCtrl.data.emit(this.data);
|
||||
this.viewCtrl.dismiss();
|
||||
this.viewCtrl.dismiss(this.data);
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,6 +119,9 @@ class ToolbarModal {
|
||||
}
|
||||
|
||||
dismiss() {
|
||||
this.viewCtrl.emit({
|
||||
toolbar: 'data'
|
||||
});
|
||||
this.viewCtrl.dismiss();
|
||||
}
|
||||
|
||||
|
@ -17,20 +17,32 @@ import {NavParams} from './nav-controller';
|
||||
* ```
|
||||
*/
|
||||
export class ViewController {
|
||||
@Output() data: EventEmitter<any> = new EventEmitter();
|
||||
@Output() _emitter: EventEmitter<any> = new EventEmitter();
|
||||
|
||||
constructor(componentType, data={}) {
|
||||
this.componentType = componentType;
|
||||
this._data = data;
|
||||
this.data = data;
|
||||
this.instance = {};
|
||||
this.state = 0;
|
||||
this._destroys = [];
|
||||
this._loaded = false;
|
||||
this._outputData = null;
|
||||
this.shouldDestroy = false;
|
||||
this.shouldCache = false;
|
||||
this.viewType = '';
|
||||
this._leavingOpts = null;
|
||||
this._onDismiss = null;
|
||||
}
|
||||
|
||||
subscribe(callback) {
|
||||
this._emitter.subscribe(callback);
|
||||
}
|
||||
|
||||
emit(data) {
|
||||
this._emitter.emit(data);
|
||||
}
|
||||
|
||||
onDismiss(callback) {
|
||||
this._onDismiss = callback;
|
||||
}
|
||||
|
||||
setNav(navCtrl) {
|
||||
@ -42,10 +54,11 @@ export class ViewController {
|
||||
}
|
||||
|
||||
getNavParams() {
|
||||
return new NavParams(this._data);
|
||||
return new NavParams(this.data);
|
||||
}
|
||||
|
||||
dismiss() {
|
||||
dismiss(data) {
|
||||
this._onDismiss && this._onDismiss(data);
|
||||
return this._nav.remove(this._nav.indexOf(this), this._leavingOpts);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user