diff --git a/src/components/app/test/barkpark/main.js b/src/components/app/test/barkpark/main.js
index 2c9c56a7cc..8276f61dd6 100644
--- a/src/components/app/test/barkpark/main.js
+++ b/src/components/app/test/barkpark/main.js
@@ -4,7 +4,7 @@ import {FormBuilder, Validators, FormDirectives, CongrolGroup} from 'angular2/fo
import {Log} from 'ionic2/util'
-import {NavViewport, View, Button, Input} from 'ionic2/ionic2'
+import {NavViewport, View, Button, Input, Tabs, Tab, Content, NavPane, Aside} from 'ionic2/ionic2'
@Component({
selector: 'login-page'
@@ -15,6 +15,7 @@ import {NavViewport, View, Button, Input} from 'ionic2/ionic2'
})
export class LoginPage {
constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) {
+
this.viewport = viewport
Log.log('LOGIN PAGE')
@@ -34,6 +35,7 @@ export class LoginPage {
}
doSignup(event) {
this.viewport.push(SignupPage)
+
}
}
@@ -46,6 +48,7 @@ export class LoginPage {
})
export class SignupPage {
constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) {
+
this.viewport = viewport
Log.log('SIGNUP PAGE')
@@ -65,10 +68,90 @@ export class SignupPage {
Log.log('Doing signup')
event.preventDefault();
console.log(this.signupForm.value);
+
+ this.viewport.push(AppPage)
//this.viewport.push(SecondPage)
}
}
+
+
+@Component({
+ selector: 'app-page'
+})
+@Template({
+ url: 'pages/app.html',
+ directives: [View, FormDirectives, Button, Input, Tabs, Tab]
+})
+export class AppPage {
+ constructor( @Parent() viewport: NavViewport ) { //, fb: FormBuilder ) {
+ this.viewport = viewport
+ this.streamTab = StreamTab
+ }
+}
+
+@Component({ selector: 'stream-tab' })
+@Template({
+ url: 'pages/tabs/home.html',
+ directives: [View, Content]
+})
+class StreamTab {
+ constructor(navPane: NavPane) {
+ this.navPane = navPane
+ }
+ selectPost(post) {
+ this.navPane.push(PostDetail, {
+ post
+ }, {
+ transition: '3dflip'
+ })
+ }
+}
+
+@Component({ selector: 'post-detail-tab' })
+@Template({
+ url: 'pages/posts/detail.html',
+ directives: [View, Content]
+})
+class PostDetail {
+ constructor(navPane: NavPane) {
+ this.navPane = navPane
+ }
+ selectItem() {
+ this.navPane.push(PostDetailTab)
+ }
+}
+
+//
+// tab 2
+//
+@Component({ selector: 't2p1' })
+@Template({
+ inline: `
+
+ Left aside for Tab 2 Page 1
+
+
+
+ Tab 2 Page 1.
+
+
I have got an aside on the left.
+
+
+
+ `,
+ directives: [View, Aside, Content]
+})
+class Tab2Page1 {
+ constructor(navPane: NavPane) {
+ this.navPane = navPane
+ }
+ next() {
+ }
+}
+
@Component({ selector: '[ion-app]' })
@Template({
directives: [NavViewport],
@@ -76,7 +159,7 @@ export class SignupPage {
})
class IonicApp {
constructor() {
- this.firstPage = LoginPage
+ this.firstPage = AppPage//LoginPage
console.log('IonicApp Start')
}
}
diff --git a/src/components/app/test/barkpark/pages/app.html b/src/components/app/test/barkpark/pages/app.html
new file mode 100644
index 0000000000..b3d95cfd41
--- /dev/null
+++ b/src/components/app/test/barkpark/pages/app.html
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/app/test/barkpark/pages/post/detail.html b/src/components/app/test/barkpark/pages/post/detail.html
new file mode 100644
index 0000000000..e0c2c1fb5c
--- /dev/null
+++ b/src/components/app/test/barkpark/pages/post/detail.html
@@ -0,0 +1 @@
+
{{post.title}}
diff --git a/src/components/app/test/barkpark/pages/tabs/home.html b/src/components/app/test/barkpark/pages/tabs/home.html
new file mode 100644
index 0000000000..3cf62d6dda
--- /dev/null
+++ b/src/components/app/test/barkpark/pages/tabs/home.html
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/components/nav-pane/nav-pane.js b/src/components/nav-pane/nav-pane.js
index 01eb2a160c..361af0ecd6 100644
--- a/src/components/nav-pane/nav-pane.js
+++ b/src/components/nav-pane/nav-pane.js
@@ -1,15 +1,23 @@
-import {DynamicComponent, Parent, NgElement} from 'angular2/angular2'
+import {DynamicComponent, Parent, NgElement, bind} from 'angular2/angular2'
import {Optional} from 'angular2/src/di/annotations'
import {NavViewport} from 'ionic2/components/nav-viewport/nav-viewport'
import {Tab} from 'ionic2/components/tabs/tab'
import {PrivateComponentLoader} from 'angular2/src/core/compiler/private_component_loader'
import {PrivateComponentLocation} from 'angular2/src/core/compiler/private_component_location'
+import {extend} from 'ionic2/util'
+
+class NavData = {
+ constructor(data = {}) {
+ extend(this, data)
+ }
+}
@DynamicComponent({
selector: '.nav-pane',
bind: {
item: 'item'
- }
+ },
+ services: [NavData]
})
export class NavPane {
constructor(
diff --git a/src/components/nav-viewport/nav-viewport.js b/src/components/nav-viewport/nav-viewport.js
index c3a9d997b9..0b5bbcd930 100644
--- a/src/components/nav-viewport/nav-viewport.js
+++ b/src/components/nav-viewport/nav-viewport.js
@@ -88,12 +88,12 @@ export class NavViewport {
// TODO make sure the timing is together
// TODO allow starting an animation in the middle (eg gestures). Leave
// most of this up to the animation's implementation.
- push(Class: Function, opts = {}) {
+ push(Class: Function, data = {}, opts = {}) {
util.defaults(opts, {
sync: this._stack.length === 0
})
- let pushedItem = new NavItem(Class)
+ let pushedItem = new NavItem(Class, data)
this._stack.push(pushedItem)
this._ngForLoopArray.push(pushedItem)
@@ -177,8 +177,9 @@ export class NavViewport {
}
class NavItem {
- constructor(ComponentClass) {
+ constructor(ComponentClass, data = {}) {
this.Class = ComponentClass
+ this.data = data
this._setupPromise = new Promise((resolve) => {
this._resolveSetupPromise = resolve
})
diff --git a/src/components/tabs/test/advanced/pages/tabs.html b/src/components/tabs/test/advanced/pages/tabs.html
index b5343ba623..b3d95cfd41 100644
--- a/src/components/tabs/test/advanced/pages/tabs.html
+++ b/src/components/tabs/test/advanced/pages/tabs.html
@@ -1,4 +1,3 @@
-