Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save gokatz/03c8a2f64a5b8ef24ecefbfb044e01e0 to your computer and use it in GitHub Desktop.
Save gokatz/03c8a2f64a5b8ef24ecefbfb044e01e0 to your computer and use it in GitHub Desktop.
Dynamic Scope POC
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
router: Ember.inject.service(),
actions: {
makeURL(){
var routeName = "scope.purchase.invoice";
var dynamicSegments = { scopeId: 1, scopeData: 2, invoiceId: 3, pageSize: 20, pageIndex: 1 };
var url = this.router.urlFor(routeName, dynamicSegments);
console.log("inside generated url", url);
}
}
});
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("scope.index", { path: "/"});
this.route("scope", { path: '/:scopeId/:scopeData' }, function(){
this.route("purchase", function(){
this.route("invoice", { path: '/:invoiceId/:pageIndex/:pageSize' });
})
this.route("orders")
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
router: Ember.inject.service(),
redirect(){
let dynamicSegments = { scopeId: 1, scopeData: 1, invoiceId: 2, pageIndex: 1, pageSize: 2 };
//this.router.transitionTo("scope.orders", dynamicSegments);
//this.router.transitionTo("scope.purchase.invoice", { scopeId: 1, scopeData: 1}, dynamicSegments);
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model(params){
console.log("inside scope route", params);
return params;
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model(params){
console.log("inside orders model hook", params);
return params;
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model(params){
console.log("inside invoice model hook", params);
return params;
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
<button {{action "makeURL"}}> Make URL </button>
{{outlet}}
<br>
<br>
Scope route hbs <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