modal updates

This commit is contained in:
Adam Bradley
2015-12-30 16:23:20 -06:00
parent 4edf7b7cdd
commit ba2b67e569
5 changed files with 229 additions and 21 deletions

View File

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

View File

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

View File

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

View File

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