Skip to content

Instantly share code, notes, and snippets.

@iezer
Forked from bantic/routes.index.js
Last active April 24, 2017 21:51
Show Gist options
  • Save iezer/68da1ebb45baafe466ca522482d190a0 to your computer and use it in GitHub Desktop.
Save iezer/68da1ebb45baafe466ca522482d190a0 to your computer and use it in GitHub Desktop.
promises 5
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
enableProp(propName) {
this.set(propName, true);
}
}
});
import Ember from 'ember';
let ready = false;
export default Ember.Route.extend({
readyHandler: Ember.inject.service(),
model() {
return new Ember.RSVP.Promise((resolve) => {
setTimeout(resolve, 2000);
}).then(() => {
return this.get('readyHandler.isReady');
});
},
afterModel(ready) {
if (!ready) {
throw new Error('not ready');
}
}
});
import Ember from 'ember';
export default Ember.Route.extend({
readyHandler: Ember.inject.service(),
actions: {
enableProp(propName) {
this.set(propName, true);
}
}
});
import Ember from 'ember';
export default Ember.Service.extend({
isReady: false
});
<p>(Tricky) Edit <em>only</em> hbs file(s) so that the index route can be successfully entered.</p>
<p>
<button {{action 'enableProp' 'hint1'}}>Hint 1</button>
{{#if hint1}}
Look at both route files.
{{/if}}
</p>
<p>
<button {{action 'enableProp' 'hint2'}}>Hint 2</button>
{{#if hint2}}
Even after editing, you will still need to interact with the page while it is loading in order to make it to the index route.
{{/if}}
</p>
<br>
{{outlet}}
<h2>fail {{model}}</h2>
<h2>loading</h2>
<button>Click to Become ready!</button>
{{!- Solution
<button {{action 'enableProp' 'readyHandler.isReady' true}}>Click to Become ready!</button>
--}}
{
"version": "0.12.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "2.12.0",
"ember-template-compiler": "2.12.0",
"ember-testing": "2.12.0"
},
"addons": {
"ember-data": "2.12.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment