From 2715e509887d75d85f14211c7337964e8f7bae81 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Wed, 29 Apr 2015 15:02:42 -0500 Subject: [PATCH] Hackery --- ionic/components/app/test/barkpark/main.js | 14 ++++++- ionic/components/app/test/hn/hn.js | 2 +- ionic/components/app/test/hn/pages/top.html | 6 ++- ionic/components/app/test/hn/pages/top.js | 45 ++++++++++++++++----- ionic/components/nav/decorators.js | 8 ++++ ionic/routing/router.js | 7 ++-- scripts/build/config.js | 3 +- 7 files changed, 67 insertions(+), 18 deletions(-) diff --git a/ionic/components/app/test/barkpark/main.js b/ionic/components/app/test/barkpark/main.js index 253c98424d..7d2c2d7456 100644 --- a/ionic/components/app/test/barkpark/main.js +++ b/ionic/components/app/test/barkpark/main.js @@ -29,6 +29,7 @@ export class LoginPage { Log.log('Doing login') event.preventDefault(); console.log(this.loginForm.value); + //this.viewport.push(SecondPage) } doSignup(event) { @@ -155,12 +156,23 @@ class IonicApp { setTimeout(() => { var nav = window.navPane; - var route = new Router() + var route = Router;//new Router() + + /* + route.map('login', { + url: '/login', + paramResolver(urlParts) { + return Login(urlParts.id); + } + }) + */ route.on('/login', (data) => { + nav.push(LoginPage, null, { animate: false }) + }) route.on('/post/:id', (data) => { diff --git a/ionic/components/app/test/hn/hn.js b/ionic/components/app/test/hn/hn.js index af7902f8c9..d9cb167723 100644 --- a/ionic/components/app/test/hn/hn.js +++ b/ionic/components/app/test/hn/hn.js @@ -1,7 +1,7 @@ import {Promise} from 'angular2/src/facade/async'; console.log(Promise); -var APIUrl = 'https://hacker-news.firebaseio.com/v0'; +var APIUrl = 'https://hacker-news.firebaseio.com/v0/'; export class HackerNewsClient { constructor() { this.fb = new Firebase(APIUrl); diff --git a/ionic/components/app/test/hn/pages/top.html b/ionic/components/app/test/hn/pages/top.html index d9b2debb7b..7f8445d50e 100644 --- a/ionic/components/app/test/hn/pages/top.html +++ b/ionic/components/app/test/hn/pages/top.html @@ -1,8 +1,10 @@ - + + + Loaded {{stories.length}} stories - + {{story.title}} diff --git a/ionic/components/app/test/hn/pages/top.js b/ionic/components/app/test/hn/pages/top.js index bf9c5c4d88..8512ddaee8 100644 --- a/ionic/components/app/test/hn/pages/top.js +++ b/ionic/components/app/test/hn/pages/top.js @@ -9,8 +9,14 @@ import {HackerNews} from 'hn' directives: [View, Content, For, List, Item, PushToNav] }) export class HNTopStories { - constructor(@Parent() viewport: Nav) {//, @Ancestor() app: HNApp) { - console.log('TOP STORIES'); + constructor(@Ancestor() viewport: Nav) {//, @Ancestor() app: HNApp) { + console.log('TOP STORIES', 'Ancestor', viewport); + + var self = this; + + this.throwMe = function() { + throw new Error('stack test from throwMe'); + }; this.stories = [{ by: "FatalLogic", @@ -25,29 +31,48 @@ export class HNTopStories { url: "http://minusbat.livejournal.com/180556.html" }]; - return; var APIUrl = 'https://hacker-news.firebaseio.com/v0'; - this.fb = new Firebase(APIUrl); + + var s = document.createElement('script'); + s.src = 'https://cdn.firebase.com/js/client/2.2.4/firebase.js'; + s.async = true; + s.onload = doStuff.bind(this); + document.head.appendChild(s); + console.log('loading firebase'); + + function doStuff() { + console.log('done loading firebase'); + + this.fb = new window.Firebase(APIUrl); this.fb.child('topstories').limitToFirst(20).once('value', (snapshot) => { let items = snapshot.val(); console.log('Fetched', items.length, 'items'); + debugger; for(var itemID of items) { this.fb.child("item").child(itemID).on('value', (data) => { - setTimeout(() => { - console.log(itemID, data.val()); - console.log('ADDED'); - this.stories.push(data.val()); - }); + //setTimeout(() => { + //console.log('SUB THIS', this); + //console.log(itemID, data.val()); + //console.log('ADDED'); + //self.stories.push(data.val()); + //throw new Error("stack test"); + debugger; + console.log('GOT ITEM', data.val()); + self.stories.push({title: 'asdf'}); + //}); //console.log(data.val()); }); } }); - + + + //doStuffEnd + } /* HackerNews.getTopStories((val) => { diff --git a/ionic/components/nav/decorators.js b/ionic/components/nav/decorators.js index 5805122941..4e32a1b93f 100644 --- a/ionic/components/nav/decorators.js +++ b/ionic/components/nav/decorators.js @@ -23,3 +23,11 @@ export class PushToNav { console.log('PUSH TO NAV', this.navTag); } } + +@Decorator({ + selector: '[href]' +}) +export class HrefNav { + constructor(element: NgElement) { + } +} diff --git a/ionic/routing/router.js b/ionic/routing/router.js index c45883421b..58853e1322 100644 --- a/ionic/routing/router.js +++ b/ionic/routing/router.js @@ -1,5 +1,4 @@ - -export class Router { +export class RouterSingleton { constructor() { this.routes = [] } @@ -18,7 +17,7 @@ export class Router { if(routeParams !== false) { route.exec(this.buildRouteParams(routeParams)); - this.emit(route.url) + this.emit(route.url); return } } @@ -116,3 +115,5 @@ export class Route { } } +var Router = new RouterSingleton(); +export { Router }; diff --git a/scripts/build/config.js b/scripts/build/config.js index f8df5aac9c..345756ea6e 100644 --- a/scripts/build/config.js +++ b/scripts/build/config.js @@ -34,7 +34,8 @@ module.exports = { 'angular2.js', 'angular2-di.js', 'ionic2.js', - 'https://cdn.firebase.com/js/client/2.2.4/firebase.js' +// 'https://cdn.firebase.com/js/client/2.2.4/firebase.js' +// 'https://cdn.firebase.com/js/client/2.2.4/firebase-debug.js' ], traceurOptions: {