Skip to content

Instantly share code, notes, and snippets.

@allthesignals
Last active April 30, 2018 02:14
Show Gist options
  • Select an option

  • Save allthesignals/514033b3906db5bc3193d6f5f9f543c9 to your computer and use it in GitHub Desktop.

Select an option

Save allthesignals/514033b3906db5bc3193d6f5f9f543c9 to your computer and use it in GitHub Desktop.
Ember Query Params Dynamic
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
import Ember from 'ember';
import { hash } from 'rsvp';
import RSVP from 'rsvp';
const { later } = Ember.run;
const { Promise } = RSVP;
export default Ember.Route.extend({
model() {
return new Promise((resolve) => {
later(this, resolve({
layerGroups: [
{id: 'test', visible: true },
{id: 'test2', visible: true }
],
layerGroupMap: {
test: { visible: true },
test2: { visible: true }
},
}), 1000);
});
},
afterModel(model) {
const controller = this.controllerFor(this.routeName);
const queryParams = model.layerGroups
.reduce((acc, curr) => {
acc[curr.id] = curr.visible;
return acc;
}, {});
const layerGroupIDs = model.layerGroups.mapBy('id');
controller.setProperties({
queryParams: layerGroupIDs,
});
this.replaceWith(this.routeName, {
queryParams,
});
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
{
"version": "0.13.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.16.2",
"ember-template-compiler": "2.16.2",
"ember-testing": "2.16.2"
},
"addons": {
"ember-data": "2.16.3"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment