/* * Adapted from: http://code.google.com/p/gaequery/source/browse/trunk/src/static/scripts/jquery.autogrow-textarea.js * * Works nicely with the following styles: * textarea { * resize: none; * transition: 0.05s; * -moz-transition: 0.05s; * -webkit-transition: 0.05s; * -o-transition: 0.05s; * } * * Usage: */ app.directive('autoGrow', function() { return function(scope, element, attr){ var minHeight = element[0].offsetHeight, paddingLeft = element.css('paddingLeft'), paddingRight = element.css('paddingRight'); var $shadow = angular.element('
').css({ position: 'absolute', top: -10000, left: -10000, width: element[0].offsetWidth - parseInt(paddingLeft ? paddingLeft : 0) - parseInt(paddingRight ? paddingRight : 0), fontSize: element.css('fontSize'), fontFamily: element.css('fontFamily'), lineHeight: element.css('lineHeight'), resize: 'none' }); angular.element(document.body).append($shadow); var update = function() { var times = function(string, number) { for (var i = 0, r = ''; i < number; i++) { r += string; } return r; } var val = element.val().replace(//g, '>') .replace(/&/g, '&') .replace(/\n$/, '