Skip to content

Instantly share code, notes, and snippets.

@DanGe42
Last active July 22, 2019 21:38
Show Gist options
  • Save DanGe42/b7f3e55d1858f82e4d5cc218d7066dc8 to your computer and use it in GitHub Desktop.
Save DanGe42/b7f3e55d1858f82e4d5cc218d7066dc8 to your computer and use it in GitHub Desktop.
Route hooks evaluation order
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import EmberRouter from '@ember/routing/router';
import config from './config/environment';
const Router = EmberRouter.extend({
location: 'none',
rootURL: config.rootURL
});
Router.map(function() {
this.route('parent', { path: '/parent' }, function() {
this.route('child', { path: '/child' });
this.route('rejected-child');
});
this.route('four-oh-four');
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
});
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel(/* transition */) {
console.log('child - beforeModel');
},
model() {
console.log("child - model");
return {};
},
afterModel(model) {
console.log("child - afterModel,", model);
}
});
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel(/* transition */) {
console.log('parent - beforeModel');
},
model() {
console.log("parent - model");
return {};
},
afterModel(model) {
console.log("parent - afterModel");
}
});
import Ember from 'ember';
export default Ember.Route.extend({
beforeModel(/* transition */) {
console.log('child - beforeModel');
},
model() {
console.log("child - model");
return Promise.reject();
},
afterModel(model) {
console.log("child - afterModel,", model);
},
actions: {
error(error, transition) {
console.warn("error action", error);
this.transitionTo('four-oh-four');
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
{{link-to "/parent/child" "parent.child"}}
<br>
{{link-to "/parent/rejected-child" "parent.rejected-child"}}
<br>
{{outlet}}
<br>
<br>
<p>parent</p>
<br>
{{outlet}}
{
"version": "0.15.1",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.4.3",
"ember-template-compiler": "3.4.3",
"ember-testing": "3.4.3"
},
"addons": {
"ember-data": "3.4.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment