Skip to content

Instantly share code, notes, and snippets.

@ro0gr
Last active June 11, 2016 20:04
Show Gist options
  • Save ro0gr/51d46fcbca54bc0e784ef77a127f50a0 to your computer and use it in GitHub Desktop.
Save ro0gr/51d46fcbca54bc0e784ef77a127f50a0 to your computer and use it in GitHub Desktop.
dynamic page layout
import Ember from 'ember';
const {set, get, computed} = Ember;
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
selectedGroupId: 0,
groups: [
{label: 'first', items: ['text', 'checkbox']},
{label: 'second', items: ['select', 'textarea']}
],
selectedGroup: computed('selectedGroupId', function() {
return this.groups[this.selectedGroupId];
}),
actions: {
changeGroup: function(e) {
set(this, 'selectedGroupId', e.target.value);
}
}
});
import Ember from 'ember';
export function eq(params/*, hash*/) {
return params[0] === params[1];
}
export default Ember.Helper.helper(eq);
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
textarea, label {
display: block;
}
fieldset {
margin: 5px 0px;
}
<style>
</style>
<h1>Welcome to {{appName}}</h1>
<label>
Fieldset selector:
<select onchange={{action "changeGroup"}}>
{{#each groups as |group num|}}
<option value="{{num}}">{{group.label}}</option>
{{/each}}
</select>
</label>
<fieldset>
{{#each selectedGroup.items as |item|}}
{{#if (eq item "text")}}
<label>
{{item}}: <input value="{{item}}"/>
</label>
{{/if}}
{{#if (eq item "checkbox")}}
<label>
<input type="checkbox" /> {{item}}
</label>
{{/if}}
{{#if (eq item "select")}}
<label>
{{item}}:
<select><option>{{item}}</option></select>
</label>
{{/if}}
{{#if (eq item "textarea")}}
<label>
{{item}}:
<textarea>{{item}}</textarea>
</label>
{{/if}}
{{/each}}
</fieldset>
<br>
<br>
{{outlet}}
<br>
<br>
{
"version": "0.8.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.5.1",
"ember-data": "2.5.2",
"ember-template-compiler": "2.5.1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment