Make routes code more async capable when setting job

After changing Ember Data to Ember Model, the default behavior is to
not return promise by default from `find` call. This is better in
general for our use case, because we don't block rendering the UI while
data loads, but we now have to handle cases where model is not yet
loaded in `setupController`
This commit is contained in:
Piotr Sarnacki 2013-07-31 13:35:47 +02:00
parent 373c7f706f
commit af3f865854

View File

@ -203,8 +203,16 @@ Travis.JobRoute = Ember.Route.extend
repo = @controllerFor('repo')
repo.set('job', model)
repo.activate('job')
@controllerFor('build').set('build', model.get('build'))
repo.set('build', model.get('build'))
# since we're no longer using promises, the setupController resolves right away,
# so we need to wait for build to be loaded
buildObserver = ->
if build = model.get('build')
@controllerFor('build').set('build', build)
repo.set('build', build)
model.removeObserver('build', buildObserver)
model.addObserver('build', this, buildObserver)
Travis.RepoIndexRoute = Ember.Route.extend Travis.SetupLastBuild,
setupController: (controller, model) ->