Skip to content

Instantly share code, notes, and snippets.

@sylwiaeb
Last active July 25, 2016 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sylwiaeb/fb4744bdd3ebc35a1d429c3c5c7cec7f to your computer and use it in GitHub Desktop.
Save sylwiaeb/fb4744bdd3ebc35a1d429c3c5c7cec7f to your computer and use it in GitHub Desktop.
ember-autosize-textarea
import Ember from 'ember';
export default Ember.TextArea.extend({
rows: 1,
input() {
this.resizeTextArea();
},
resizeTextArea() {
let el = this.get('element');
el.style.height = 'auto';
el.style.height = el.scrollHeight + 'px';
},
didInsertElement() {
this._super(...arguments); 
this.resizeTextArea(this.get('element'));
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle'
});
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
textarea {
box-sizing: border-box;
resize: none;
/**
* The same can be achived by setting offset on didInsertElement():
* ```
* const el = this.get('element');
* this.set('offset', el.offsetHeight - el.clientHeight);
* ```
* and adding it to calculated height:
* ```
* el.style.height = el.scrollHeight + this.get('offset') + 'px';
* ```
*/
overflow-y: hidden;
}
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<h4>Auto size textarea component</h4>
{{textarea-autosize value="News aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation siteNews aggregation site"}}
<br>
<br>
{
"version": "0.10.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.6.0",
"ember-data": "2.6.1",
"ember-template-compiler": "2.6.0"
},
"addons": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment