Created
January 15, 2015 12:41
-
-
Save mariusk/60c08300dfe3be55b451 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# watchify -v -t coffeeify -o www/bundle.js -e client/client.coffee | |
# browserify -t coffeeify -o www/bundle.js -e client/client.coffee | |
C = require 'cyclejs' | |
Rx = C.Rx | |
h = C.h | |
root = window ? exports | |
Page1Model = C.createModel (intent) -> | |
route$: intent.get('changeRoute$').startWith('/page1') | |
Page1View = C.createView (model) -> | |
vtree$: model.get('route$').map (data) -> | |
h 'div', null, [ | |
(h 'button', {onclick: 'changeRoute$'}, '/page2') | |
(h 'div', null, ("#{new Date()}"))] | |
Page1Intent = C.createIntent (view) -> | |
changeRoute$: view.get('changeRoute$').map (ev) -> | |
console.log "Page1Intent", ev.target.textContent | |
ev.target.textContent | |
RouteModel = C.createModel (intent) -> | |
route$: intent.get('changeRoute$').startWith('/page1') | |
RouteView = C.createView (model) -> | |
vtreepage1$ = Page1View.get('vtree$') | |
vtree$: Rx.Observable.combineLatest(model.get('route$'), vtreepage1$, (route, vtree) -> | |
console.log "route #{route}" | |
switch route | |
when '/page1' then vtree) | |
RouteIntent = C.createIntent (view) -> | |
changeRoute$: view.get('changeRoute$').map (route) -> | |
console.log "RouteIntent", route | |
route1 | |
# Option 1 (below) works as expected, but has no routing of course. But | |
# at least the intent gets activated when I push the button. | |
# | |
#C.createRenderer('#container').inject(Page1View) | |
#Page1Intent.inject(Page1View).inject(Page1Model).inject(Page1Intent) | |
# Option 2 (below) displays ok (correct html), but no intents get activated | |
# anywhere (neither Page1Intent or RouteIntent). | |
C.createRenderer('#container').inject(RouteView) | |
Page1Intent.inject(Page1View).inject(Page1Model).inject(Page1Intent) | |
RouteIntent.inject(RouteView).inject(RouteModel).inject(RouteIntent) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment