Skip to content

Instantly share code, notes, and snippets.

@dhindurthy
Last active December 10, 2019 21:08
Show Gist options
  • Save dhindurthy/28f0b758bf6a4700551aac04de221090 to your computer and use it in GitHub Desktop.
Save dhindurthy/28f0b758bf6a4700551aac04de221090 to your computer and use it in GitHub Desktop.
ember-component-interaction
import Ember from 'ember';
export default Ember.Component.extend({
change(e){
//alert(e.target.value);
this.set('value', e.target.value)
},
actions:{
didDrop(e){
//this.send('change',e.target.value)
}
}
});
import Ember from 'ember';
import EmberObject, { computed } from '@ember/object';
export default Ember.Component.extend({
firstName:'',
lastName:'',
middleName:'',
genders:[
{ name: 'Male' },
{ name: 'Female' },
{ name: 'Non-binary' }
],
titles:[
{ name: 'Mr' },
{ name: 'Ms' },
{ name: 'They' }
],
genderDefault:computed('title', function() {
if(this.title==='Mr'){
return "Male";
} else if (this.title==='Ms'){
return "Female";
} else if (this.title==='They'){
return "Non-binary";
}
})
});
import Ember from 'ember';
export default Ember.Component.extend({
change(e){
//alert(e.target.value);
this.set('value', e.target.value)
},
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
name: ""
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
form {
height: 400px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
label{
display: block;
}
.names{
display:flex;
justify-content:space-between
}
ul {
list-style: none;
}
input {
width: auto;
}
{{outlet}}
<MyForm @name={{this.name}}></MyForm>
{{yield}}
<label>{{this.label}}</label>
<select disabled={{this.disabled}}>
{{#each this.options as |item|}}
<option value={{item.name}} selected={{eq sOption item.name}}>{{item.name}}</option>
{{/each}}
</select>
{{yield}}
<form>
<MyDropdown @label="Title" @options={{this.titles}} @value={{this.title}}></MyDropdown>
<div class="names">
<MyInput @type="text" @value={{this.firstName}} @label="First Name"></MyInput>
<MyInput @type="text" @value={{this.middleName}} @label="Middle Name"></MyInput>
<MyInput @type="text" @value={{this.lastName}} @label="Last Name"></MyInput>
</div>
<MyInput @type="date" @value={{this.dob}} @label="Date of Birth"></MyInput>
<div class="names">
<MyInput @type="email" @value={{this.email}} @label="Email"></MyInput>
<MyInput @type="number" @value={{this.phone}} @label="Phone"></MyInput>
</div>
<MyDropdown @label="Gender" @sOption={{this.genderDefault}} @options={{this.genders}} @disabled=true ></MyDropdown>
<MyInput @type="submit" @value='Submit'></MyInput>
</form>
<ul>
<li>{{this.title}} {{this.firstName}} {{this.lastName}}</li>
<li>{{this.dob}}</li>
<li>{{this.email}} {{this.phone}}</li>
<li></li>
<li>{{this.genderDefault}}</li>
</ul>
{{yield}}
<label>{{this.label}}</label>
<input type={{this.type}} value={{this.value}}>
{
"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",
"bootstrap":"https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css",
"ember": "3.4.3",
"ember-template-compiler": "3.4.3",
"ember-testing": "3.4.3"
},
"addons": {
"ember-data": "3.4.2",
"ember-truth-helpers": "1.3.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment