@@ -6,9 +6,9 @@ import {Modal, ActionSheet, NavController, NavParams, Transition, TransitionOpti
6
6
templateUrl : 'main.html'
7
7
} )
8
8
class E2EPage {
9
+ platforms ;
9
10
10
- constructor ( nav : NavController , config : Config , platform : Platform ) {
11
- this . nav = nav ;
11
+ constructor ( private nav : NavController , config : Config , platform : Platform ) {
12
12
console . log ( 'platforms' , platform . platforms ( ) ) ;
13
13
console . log ( 'mode' , config . get ( 'mode' ) ) ;
14
14
@@ -55,6 +55,14 @@ class E2EPage {
55
55
} ) ;
56
56
}
57
57
58
+ presentModalWithInputs ( ) {
59
+ let modal = Modal . create ( ModalWithInputs ) ;
60
+ modal . onDismiss ( ( data ) => {
61
+ console . log ( 'Modal with inputs data:' , data ) ;
62
+ } ) ;
63
+ this . nav . present ( modal ) ;
64
+ }
65
+
58
66
presentModalCustomAnimation ( ) {
59
67
let modal = Modal . create ( ContactUs ) ;
60
68
this . nav . present ( modal , {
@@ -85,12 +93,13 @@ class E2EPage {
85
93
`
86
94
} )
87
95
class ModalPassData {
88
- constructor ( params : NavParams , viewCtrl : ViewController ) {
96
+ data ;
97
+
98
+ constructor ( params : NavParams , private viewCtrl : ViewController ) {
89
99
this . data = {
90
100
userId : params . get ( 'userId' ) ,
91
101
name : 'Jenny'
92
102
} ;
93
- this . viewCtrl = viewCtrl ;
94
103
}
95
104
96
105
submit ( ) {
@@ -118,9 +127,7 @@ class ModalPassData {
118
127
} )
119
128
class ToolbarModal {
120
129
121
- constructor ( viewCtrl : ViewController ) {
122
- this . viewCtrl = viewCtrl ;
123
- }
130
+ constructor ( private viewCtrl : ViewController ) { }
124
131
125
132
dismiss ( ) {
126
133
this . viewCtrl . emit ( {
@@ -133,12 +140,66 @@ class ToolbarModal {
133
140
134
141
135
142
@Page ( {
136
- template : '<ion-nav [root]="rootView"></ion-nav>'
143
+ template : `
144
+ <ion-toolbar secondary>
145
+ <ion-buttons start>
146
+ <button (click)="dismiss()">Close</button>
147
+ </ion-buttons>
148
+ <ion-title>Modal w/ Inputs</ion-title>
149
+ </ion-toolbar>
150
+ <ion-content>
151
+ <form #addForm="ngForm" (submit)="save($event)" novalidate>
152
+ <ion-list>
153
+ <ion-item>
154
+ <ion-label floating>Title <span [hidden]="title.valid">(Required)</span></ion-label>
155
+ <ion-input ngControl="title" type="text" [(ngModel)]="data.title" #title="ngForm" required autofocus></ion-input>
156
+ </ion-item>
157
+ <ion-item>
158
+ <ion-label floating>Note <span [hidden]="note.valid">(Required)</span></ion-label>
159
+ <ion-input ngControl="note" type="text" [(ngModel)]="data.note" #note="ngForm" required></ion-input>
160
+ </ion-item>
161
+ <ion-item>
162
+ <ion-label floating>Icon</ion-label>
163
+ <ion-input ngControl="icon" type="text" [(ngModel)]="data.icon" #icon="ngForm" autocomplete="on" autocorrect="on"></ion-input>
164
+ </ion-item>
165
+ </ion-list>
166
+ <div padding>
167
+ <button block large type="submit" [disabled]="!addForm.valid">Save</button>
168
+ </div>
169
+ </form>
170
+ </ion-content>
171
+ `
172
+ } )
173
+ class ModalWithInputs {
174
+ data ;
175
+
176
+ constructor ( private viewCtrl : ViewController ) {
177
+ this . data = {
178
+ title : 'Title' ,
179
+ note : 'Note' ,
180
+ icon : 'home'
181
+ } ;
182
+ }
183
+
184
+ public save ( ev ) {
185
+ this . viewCtrl . dismiss ( this . data ) ;
186
+ }
187
+
188
+ public dismiss ( ) {
189
+ this . viewCtrl . dismiss ( null ) ;
190
+ }
191
+ }
192
+
193
+
194
+ @Page ( {
195
+ template : '<ion-nav [root]="root"></ion-nav>'
137
196
} )
138
197
class ContactUs {
198
+ root ;
199
+
139
200
constructor ( ) {
140
201
console . log ( 'ContactUs constructor' ) ;
141
- this . rootView = ModalFirstPage ;
202
+ this . root = ModalFirstPage ;
142
203
}
143
204
onPageLoaded ( ) {
144
205
console . log ( 'ContactUs onPageLoaded' ) ;
@@ -185,9 +246,7 @@ class ContactUs {
185
246
`
186
247
} )
187
248
class ModalFirstPage {
188
- constructor ( nav : NavController ) {
189
- this . nav = nav ;
190
- }
249
+ constructor ( private nav : NavController ) { }
191
250
192
251
push ( ) {
193
252
let page = ModalSecondPage ;
@@ -265,10 +324,9 @@ class ModalFirstPage {
265
324
} )
266
325
class ModalSecondPage {
267
326
constructor (
268
- nav : NavController ,
327
+ private nav : NavController ,
269
328
params : NavParams
270
329
) {
271
- this . nav = nav ;
272
330
console . log ( 'Second page params:' , params ) ;
273
331
}
274
332
}
@@ -278,6 +336,8 @@ class ModalSecondPage {
278
336
template : '<ion-nav [root]="root"></ion-nav>'
279
337
} )
280
338
class E2EApp {
339
+ root ;
340
+
281
341
constructor ( ) {
282
342
this . root = E2EPage ;
283
343
}
0 commit comments