Created
January 8, 2013 20:03
-
-
Save anonymous/4487403 to your computer and use it in GitHub Desktop.
This file contains 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
RuntimeUi.Router.map (match)-> | |
match( '/' ).to 'dashboard', (match)-> | |
match( '/' ).to 'dashboard_home' | |
match( '/w' ).to 'workspaces', (match)-> | |
match( '/:uid').to 'workspace', (match)-> | |
match( '/' ).to 'workspace_home' | |
match( '/outer' ).to 'outer' | |
RuntimeUi.DashboardRoute = Ember.Route.extend | |
enter: -> | |
console.log 'de' | |
@controllerFor( 'dashboard' ).fetchDashboard() | |
renderTemplate: (controller, model)-> | |
console.log 'drt' | |
@render | |
outlet: 'main' | |
controller.set 'currentWorkspace', '' | |
dmic = @controllerFor( 'dashboardMenuitems' ) | |
dmic.set 'content', controller.workspaces | |
@render 'dashboardMenuitems', | |
outlet: 'menu' | |
into: 'dashboard' | |
controller: dmic | |
RuntimeUi.DashboardHomeRoute = Ember.Route.extend | |
renderTemplate: (controller, model)-> | |
console.log 'dhrt' | |
dc = @controllerFor( 'dashboard' ) | |
@render 'dashboard' | |
outlet: 'main' | |
controller: dc | |
into: 'application' | |
dc.set 'currentWorkspace', '' | |
dmic = @controllerFor( 'dashboardMenuitems' ) | |
dmic.set 'content', dc.workspaces | |
@render 'dashboardMenuitems', | |
outlet: 'menu' | |
into: 'dashboard' | |
controller: dmic | |
RuntimeUi.WorkspacesRoute = Ember.Route.extend | |
model: (a)-> | |
console.log "wsm1.5", a | |
renderTemplate: (controller, model)-> | |
console.log "wsrt2" | |
dbc = @controllerFor( 'dashboardBoxes' ) | |
dbc.set 'content', [] | |
@render 'dashboardBoxes', | |
outlet: 'main' | |
into: 'dashboard' | |
controller: dbc | |
RuntimeUi.WorkspaceRoute = Ember.Route.extend | |
model: (urlParams)-> | |
dc = @controllerFor( 'dashboard' ) | |
model = dc.getWorkspace urlParams.uid | |
console.log "wm", urlParams, urlParams.uid, model | |
dc.setCurrentWorkspace model | |
model | |
renderTemplate: (controller, model)-> | |
console.log "w3", model | |
dc = @controllerFor( 'dashboard' ) | |
dc.setCurrentWorkspace model | |
RuntimeUi.WorkspaceHomeRoute = Ember.Route.extend | |
renderTemplate: (controller, model)-> | |
console.log "whrt4", model | |
model: (urlParams)-> | |
# dc = @controllerFor( 'dashboard' ) | |
# ws = dc.getCurrentWorkspace() | |
ws = @modelFor('workspace') | |
console.log 'wshm1', ws, urlParams | |
ws | |
So, when this transition is triggerred: | |
RuntimeUi.OuterController = Ember.Controller.extend | |
goToWorkspace: (workspace)-> | |
@transitionTo 'workspace_home', workspace | |
I'm seeing this output: | |
wshm1 undefined Object | |
wsm1.5 Object | |
wsrt2 | |
w3 Class {uid: "workspace.50e9dde0e6c3e6a608000001", app_instances: Class, owner_uid: "user.50e981156762a60000000039", public: true, admin_uids: Array[0]…} | |
set current workspace workspace.50e9dde0e6c3e6a608000001 dashboard_controller.js:73 | |
whrt4 undefined | |
So: | |
- model() of WorkspaceHome is called first, without arguments. Therefore it cannot know current workspace, and returns undefined | |
- then calls are done from top, as expected: WorkspacesRoute.model() and .renderTemplate() | |
- then WorkspaceRoute.model() is skipped (interesting), but .renderTemplate() is called with proper model: the one passed to @transitionTo | |
- that causes current workspace to be set, so now WorkspaceHome.model() can be called. But, it was called before, returned undefined, so now WorkspaceHome.renderTemplate() is called with undefined(). |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment